Mypy 不检测有关在函数内部使用 NamedTuple 的错误
Mypy does not detect errors regarding the use of NamedTuple inside functions
在下面的代码中,x2
和x3
的定义显然是错误的,但mypy并没有抱怨。
from typing import NamedTuple
class X(NamedTuple):
a: float
b: float
c: float
def foo():
x1 = X(1, 2, 3)
x2 = X(1, 2)
x3 = X("1", 2, 3)
如果我删除函数声明并将这三行放入主文件范围,则 mypy 会正确识别这两个错误
from typing import NamedTuple
class X(NamedTuple):
a: float
b: float
c: float
x1 = X(1, 2, 3)
x2 = X(1, 2)
x3 = X("1", 2, 3)
这是为什么,我该怎么办?
我是运行
python 3.9.5
我的 0.931
您的 foo
函数未键入,您必须告诉 mypy
以使用 ->
:
键入它
def foo() -> None:
在下面的代码中,x2
和x3
的定义显然是错误的,但mypy并没有抱怨。
from typing import NamedTuple
class X(NamedTuple):
a: float
b: float
c: float
def foo():
x1 = X(1, 2, 3)
x2 = X(1, 2)
x3 = X("1", 2, 3)
如果我删除函数声明并将这三行放入主文件范围,则 mypy 会正确识别这两个错误
from typing import NamedTuple
class X(NamedTuple):
a: float
b: float
c: float
x1 = X(1, 2, 3)
x2 = X(1, 2)
x3 = X("1", 2, 3)
这是为什么,我该怎么办?
我是运行 python 3.9.5 我的 0.931
您的 foo
函数未键入,您必须告诉 mypy
以使用 ->
:
def foo() -> None: