在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西?
其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型。函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。
更官方的解释:此为type hints,是Python 3.5新加的功能,作用如上所述,官方文档为 https://www.python.org/dev/peps/pep-0484/
值得注意的是,类型建议符并非强制规定和检查,也就是说即使传入的实际参数与建议参数不符,也不会报错。我认为类型建议符的作用更多的体现在软件工程方面:在多人合作的时候,我们对他人开发的代码并不熟悉,没有对类型的解释说明的话,往往需要花费更多的时间才能看出函数的参数和返回值是什么类型,有了说明符,可以方便程序员理解函数的输入与输出(具体涉及到的工作,比如静态分析与代码重构)。
下面我们以一个简单的函数twoSum为例,该函数计算的是两个输入参数的和:
def add(numone: int, numtwo: int=1) -> int:
"""
:param numone: 参数冒号后面是期望的参数类型 int
:param numtwo: 参数冒号后面是期望的参数类型 int
:return: -> 箭头期望返回值的类型 int
"""
data = numone + numtwo
return data
if __name__ == '__main__':
print(add.__annotations__)
print(add(1,2))
print(add(2))
print(add('hhh', 'eee')) # 不会强制规定和检查,也就是说即使传入的实际参数与建议参数不符,也不会报错,但是若传入的参数非指定的类型,会高亮!