python(第四天):函数注解

来源:互联网 发布:excel时间自动刷新数据 编辑:程序博客网 时间:2024/06/05 17:24

函数注解这种语法出现在 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


现在对这种技术的用途还不是很清楚, 只知道在函数装饰器中有应用, 在此记录一下.方便记忆. PS:lambda不能使用注解,因为它限制了它所定义的函数工具.(不明白什么意思,准备看看lamdba)

0 0