Python Mypy是否忽略构造函数?
当我意外地将变量更改为其他数据类型时,我想使用Mypy来警告我。 但是Mypy似乎忽略了在我的测试类的Python Mypy是否忽略构造函数?,python,types,mypy,Python,Types,Mypy,当我意外地将变量更改为其他数据类型时,我想使用Mypy来警告我。 但是Mypy似乎忽略了在我的测试类的\uuuu init\uuuuu中发生的任何事情。 它还忽略对象属性对不同数据类型的更改 最小复制器: class Foo: blah: int def __init__(self): self.blah = 'asdf' 这段代码的Mypy 我遗漏了什么吗?mypy忽略任何没有类型注释的def语句的主体。注释任何参数或使用原因mypy检查\uuuu init\
\uuuu init\uuuuu
中发生的任何事情。
它还忽略对象属性对不同数据类型的更改
最小复制器:
class Foo:
blah: int
def __init__(self):
self.blah = 'asdf'
这段代码的Mypy
我遗漏了什么吗?
mypy
忽略任何没有类型注释的def
语句的主体。注释任何参数或使用原因mypy
检查\uuuu init\uuuu
并拒绝不正确的分配
class Foo:
blah: int
blub: int
# annotated parameter `blub` and/or return `->` trigger inspection
def __init__(self, blub: int = 42) -> None:
self.blah = 'asdf' # error: Incompatible types in assignment (expression has type "str", variable has type "int")
self.blub = blub
非常感谢你。它终于按我希望的方式工作了。:)只是一个简短的后续问题:init之外的“blah:int”是否不关心blah是实例、类还是静态attribtue?默认情况下,类范围中的注释指示实例变量。类属性必须在类范围内注释为
blah:ClassVar[int]
。