Mypy 类型检查器和 "static instances"
Mypy type checker and "static instances"
对于我写的 class A
,有一些实例 foo
和 bar
我想通过 A.foo
和 A.bar
作为 class 变量。但是,foo
和 bar
都是 A
的实例,我不确定如何让类型检查器 mypy
正确处理它。我目前实例化 foo
和 bar
如下:
class A:
def __init__(self):
pass
foo = None
bar = None
A.foo = A()
A.bar = A()
这导致 mypy
得出 A.foo
和 A.bar
属于 None
类型的结论。注释为 Optional[A]
会起作用,但这歪曲了意图:我希望两者都是 A
类型...有什么提示吗?
如果您使用的是 python 3 的更高版本,您可以使用注释为您完成此操作。
foo : A
我认为 mypy 使用标准注释。如果这不起作用,请尝试用引号将注释括起来。
foo : "A"
对于我写的 class A
,有一些实例 foo
和 bar
我想通过 A.foo
和 A.bar
作为 class 变量。但是,foo
和 bar
都是 A
的实例,我不确定如何让类型检查器 mypy
正确处理它。我目前实例化 foo
和 bar
如下:
class A:
def __init__(self):
pass
foo = None
bar = None
A.foo = A()
A.bar = A()
这导致 mypy
得出 A.foo
和 A.bar
属于 None
类型的结论。注释为 Optional[A]
会起作用,但这歪曲了意图:我希望两者都是 A
类型...有什么提示吗?
如果您使用的是 python 3 的更高版本,您可以使用注释为您完成此操作。
foo : A
我认为 mypy 使用标准注释。如果这不起作用,请尝试用引号将注释括起来。
foo : "A"