使用Python 3.5.1。以及当前使用 git 安装的 mypy, mypy 标记错误 1 和 2,但不报告 3
我做错了什么,或者这是一个错误,还是一个已知问题?
import typing
def test_ordered_dict(od: typing.Dict[str,int]) -> typing.Dict[str,int]:
return 1 #type error 1
a = test_ordered_dict(1) #type error 2
def test_me():
a = test_ordered_dict(1) # type error 3 is not reported
我对docs的理解是,如果 mypy 指示它应该检查它(通过在模块级别导入类型或通过注释函数),则 mypy 只会检查它(模块,函数,等等)。
因此检查 1 是因为它位于类型化的函数中,检查 2 是因为导入类型表明您的模块已类型化且位于模块范围内,但 3 位于非类型化函数的范围内,因此被忽略。