对于我编写的类
A
,我希望可以通过foo
和bar
作为类变量来访问一些实例A.foo
和A.bar
。然而, 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"