首页 > 解决方案 > MyPy 不会引发不同文件之间的类型不匹配

问题描述

在具有以下结构的目录中:

src/
  my_module/
    foo.py
    bar.py

我使用mypy src/mymodule.

如果单个文件中有以下内容(例如foo.py):

# foo.py
def hey(whatever: str) -> int:
    return 234

hey(22)

然后 MyPy 会抱怨,这是理所当然的。

$ mypy src/my_module
src/my_module/foo.py:4: error: Argument 1 to "hey" has incompatible type "int"; expected "str"

但是,如果一个文件调用另一个文件中的函数:

# foo.py
def hey(whatever: str) -> int:
    return 234

# bar.py
from foo import hey
hey(22)

然后 MyPy 没有发现错误:

$ mypy src/mymodule
Success: no issues found in 2 source files

如何确保 MyPy 检查不同文件之间的类型一致性?

标签: pythonpython-3.xpython-3.8mypy

解决方案


推荐阅读