关于python函数参数中的 :和 ->

157 阅读1分钟

其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型。函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。 更官方的解释:此为type hints,是Python 3.5新加的功能,作用如上所述:官方文档

def twoSum(num1: int, num2: int=100) -> int:
    sum = num1 + num2
    return sum
    
if __name__ == "__main__":
    print(twoSum.__annotations__)
    print(twoSum(1,2))
    print(twoSum(1))
    print(twoSum('I love ','Arsenal'))
    # print(twoSum('goods'))
    #print(twoSum('data',20))
    print(twoSum([1,2],[2,3]))
    print(twoSum((10,),(12,30)),type(twoSum((10,),(12,30))))
 

几点解释:

第一行输出中的__annotations__是函数的保留属性,保存的是函数声明中的注释内容,比如我们使用的对参 数"num1","num2"和返回值的建议类型。

第二行输出是正常用法。

第三行输出验证了:注释内容后可以跟等号"=",意思为未传入实参时,该参数获得的默认值

第四行输出则验证了该解释说明符并非强制检查,我们传入了两个str实参,并不会报错,而是继续进行函数中的加法运算。

第五,六行验证了如果传入的两个实参无法进行函数中规定的运算,则会正常报错,七八行表示list和tuple也可以正常运算