在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西?
其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型。函数后面跟着的箭头是函数返回值的类型建议符**,用来说明该函数返回的值是什么类型**。
更官方的解释:此为type hints,是Python 3.5新加的功能,作用如上所述,官方文档为 PEP 484 – Type Hints | peps.python.org
值得注意的是,类型建议符并非强制规定和检查,也就是说即使传入的实际参数与建议参数不符,也不会报错。我认为类型建议符的作用更多的体现在软件工程方面:在多人合作的时候,我们对他人开发的代码并不熟悉,没有对类型的解释说明的话,往往需要花费更多的时间才能看出函数的参数和返回值是什么类型,有了说明符,可以方便程序员理解函数的输入与输出(具体涉及到的工作,比如静态分析与代码重构)。
->常常出现在python函数定义的函数名后面,为函数添加元数据,描述函数的返回类型,从而方便开发人员使用。“-> 类型”没实质性作用,比如某函数定义时“-> int”,但依旧可以返回其他非int类型,"->"是为了增加可读性,比如:
通常的写法是:
def attrs(self) -> _Attrs:
pass
这种写法通常是写在函数的函数名后面def add(x, y) -> int:
return x+y
这里面,元数据表明了函数的返回值为int类型。
-> _Attr则表明函数返回的是一个外部可访问的类的私有变量。