函数注释:
参数注释:以冒号(:)标记
返回值注释:以 -> 标记
def fun (a:1,b:2) -> bool:
return a+b
print(fun(4,5))
>>> 9
以上两种注释方法仅有注释功能,不对逻辑判断
annotations ,它是一个映射(dict),用于将每个参数名(key)映射到其相关的注释(value)。
#函数名+__annotations__:打印出来的是所有注释
def fun (a:1,b:2) -> bool:
return a+b
print(fun.__annotations__)
>>> {'a': 1, 'b': 2, 'return': <class 'bool'>}
动态注释
由于参数与注释值为映射关系,当参数的值发生变化时,注释也会随之变化
def sum(a, b) -> 0:
result = a + b
sum.__annotations__['return'] += result
return result
print(sum.__annotations__['return'])
>>> 0
print(sum(1,2))
>>> 3
print(sum.__annotations__['return'])
>>> 3
print(sum(3,4))
>>> 7
print(sum.__annotations__['return'])
>>> 7