Python静态类型检查工具mypy

mypy工具可以用于检查不符合Python类型注解的语句。

例如,如果直接跑test.py:

# test.py
from typing import List

a: List[int] = []
a.append('1')
print(a)

输出:

['1']

虽然‘1’不是int,但是也不会报错,因为typing的注解只是一种提示。那typing只相当于注释吗?其实不是,可以用静态类型检查工具来发现这种错误,例如mypy。

mypy使用前需要用pip安装:

pip3 install mypy

使用方法是mypy+需要检查的.py文件:

mypy test.py

输出:

test.py:12: error: Argument 1 to "append" of "list" has incompatible type "str"; expected "int"
Found 1 error in 1 file (checked 1 source file)

如果想忽略这个错误,可以在对应行的后面加上# type:ignore

# test.py
from typing import List

a: List[int] = []
a.append('1')  # type:ignore
print(a)

再用mypy检查,输出:

Success: no issues found in 1 source file

但是这一行就不能有其它注释,否则会失效,例如下面两种写法:

a.append('1')  # test # type: ignore

a.append('1')  # test type: ignore

你可能感兴趣的:(Python,python,开发语言)