Mypy 未检测到函数内部的类型错误

问题描述 投票:0回答:1

使用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
python python-typing mypy
1个回答
12
投票

我对docs的理解是,如果 mypy 指示它应该检查它(通过在模块级别导入类型或通过注释函数),则 mypy 只会检查它(模块,函数,等等)。

因此检查 1 是因为它位于类型化的函数中,检查 2 是因为导入类型表明您的模块已类型化且位于模块范围内,但 3 位于非类型化函数的范围内,因此被忽略。

© www.soinside.com 2019 - 2024. All rights reserved.