函数注解
Python 3提供了一种句法,用于为函数声明中的参数和返回值附加元数据
| |
函数声明中的各个参数可以在:之后添加注解表达式。如果参数有默认值,注解放在参数名和=号之间。如果注解返回值,在)和函数生命末尾的:之间添加一个->和一个表达式。这个表达式可以是任何类型。注解中最常用的类型是类(如str和int)和字符串(如’int>0’)
注解不会做任何处理,只是存储在__annotations__属性(一个字典)中:
| |
{'text': str, 'max_len': 'int>0', 'return': str}
‘return’键保存的的是返回值的注解,即函数声明里以->标记的部分
Python对注解所做的唯一的事情是,把它们存储在函数的__annotations__属性里。仅此而已,Python不做检查、不做强制、不做验证,什么操作都不做。换句话说,注解对Python解释器没有任何意义。注解只是元数据,可以提供IDE、框架和装饰器等工具使用
| |
str
| |
<class 'str'> : text = <class 'inspect._empty'>
'int>0' : max_len = 80
signature函数返回一个Signature对象,它有一个return_annotation属性和一个parameters属性,后者是一个字典,把参数名映射到Parameter对象上。每个Parameter对象自己也有annotation属性
函数注解的最大的影响是为IDE和lint程序等工具中静态类型检查功能提供额外的类型信息