函数注释Function Annotations
可做为函数额外的注释来用。函数注释是一个可选功能,它允许在函数参数和返回值中添加任意的元数据。无论是 Python 本身还是标准库,都使用了函数注释,第三方项目可以很方便的使用函数注释来进行文档编写、类型检查、或者是其他用途。
函数注释包括:
参数注释:以冒号(:)标记
返回值注释:以 -> 标记
def foo(a: expression, b: expression = 5) -> expression:
...
示例:
def func(a: 'haha', b: (1, 10), c: float) -> int:
return a + b + c
print(func(1, 2, 3))
>>> 6
这些注释信息都是函数的元信息,存储在函数的__annotations__属性里。
需要注意,注解对Python解释器没任何意义,python对不做检查,不做强制,不做验证!什么都不做。
annotations ,它是一个映射(dict),用于将每个参数名(key)映射到其相关的注释(value)。
查看所有的annotation,可通过如下语句:
print(func.__annotations__)
>>> {'a': 'haha', 'b': (1, 10), 'c': <class 'float'>, 'return': <class 'int'>}
动态注释
annotations 是函数的一个属性,类型为 dict。由于 dict 是可变的,这意味着,可以在程序运行时动态地修改注释。
def sum(a, b) -> 0:
result = a + b
sum.__annotations__['return'] += result
return result
>>> sum.__annotations__['return']
0
>>> sum(1, 2)
3
>>> sum.__annotations__['return']
3
>>> sum(3, 4)
7
>>> sum.__annotations__['return']
10