函数注解这种语法出现在 python3.0中(python2.6不支持),当使用它时,它被直接附加到函数对象的__annotations__中.
>>> def func(a:'spam',b:(1,10),c:float)->int:
return a+b+c
>>> func(1,2,3)
6
如上面代码,对于参数的注解出现在紧随参数名之后的冒号之后;对于返回值,它们编写于紧跟在参数列表之后的一个 -> 之后.
下面可以看到函数对象是如何保存注解的:
>>> func.__annotations__
{'return': <class 'int'>, 'c': <class 'float'>, 'b': (1, 10), 'a': 'spam'}
参数名变成键,注解变量值.使用字典来保存.
使用注解后还可以使用默认参数:
>>> def func(a:'spam'=4,b:(1,10)=5,c:float=6)->int:
return a+b+c
>>> func(1,2)
9