python是一门动态语言,变量和函数的参数不区分类型,好处是方便,灵活。坏处是别人不能直观的看到数据的类型,IDE也不能给出类型提示。使用类型标注的好处就不言而喻
def f(a: int,b: int)->int:
return a+b
a: int = 123
b: str = 'hello'
用:符号
指定函数的参数类型,用->符号
指定函数的返回值类型
注意:
- python解释器不会因为类型标注而有其他额外的类型校验,检查等。只是方便人看和IDE进行提示,语法检查等工作。
- python3.5之后的版本才支持,3.5版本不支持。
使用函数的__annotations__属性可以查看参数和返回值的类型
- 即使变量的值和标注的类型不一致,python也不会报错。可以使用
mypy
库可以检查py文件类型标注和其值是否一致,一致显示success,不一致则会报错。
使用方法:
#test.py
def f(a: int,b: int)->int:
return a+b
c:int = 'aaaa'
安装mypy库:pip install mypy
在test.py所在目录中运行
mypy test.py
结果:
如果成功
#test.py
def f(a: int,b: int)->int:
return a+b
c:int = 12
则显示: