“->” Function Annotations 函数注解
“Python 3 provides syntax to attach metadata to the parameters of a function declaration and its return value.”
在函数声明的时候增加元信息,包括输入参数的数据类型、默认值以及返回值的数据类型,主要是用来方便程序员阅读代码。
如
def foobar(a: int, b: "it's b", c: str = 5) -> tuple:
return a, b, c
可以通过__annotations__获取函数的注解
>>> foobar.__annotations__
{'a': int, 'b': "it's b", 'c': str, 'return': tuple}
注意:
python解释器不会对这些注解添加任何的语义。它们不会被类型检查,运行时跟没有加注解之前的效果也没有任何差距。 然而,对于那些阅读源码的人来讲就很有帮助啦。第三方工具和框架可能会对这些注解添加语义。同时它们也会出现在文档中
引申:
以上属于函数的静态注释,除此之外还有动态注释,有两种风格
Google风格
"""
This is a groups style docs.
Parameters:
param1 - this is the first param
param2 - this is a second param
Returns:
This is a description of what is returned
Raises:
KeyError - raises an exception
"""
Rest风格
"""
This is a reST style.
:param param1: this is a first param
:param param2: this is a second param
:returns: this is a description of what is returned
:raises keyError: raises an exception
"""