Mypy 类型检查器和“静态实例”

问题描述 投票:0回答:1

对于我编写的类

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 python-typing mypy
1个回答
1
投票

如果您使用更高版本的 python 3,您可以使用注释来为您完成此操作。

foo : A

我认为 mypy 可以使用标准注释。如果这不起作用,请尝试用引号将注释引起来。

foo : "A"
© www.soinside.com 2019 - 2024. All rights reserved.