首页 > 解决方案 > Mypy 类型检查器和“静态实例”

问题描述

对于A我写的一个类,有一些实例foobar我希望通过类变量A.fooA.bar类变量来访问它们。但是,fooandbar都是 , 的实例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......有什么提示吗?

标签: pythontype-hintingmypypython-typing

解决方案


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

foo : A

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

foo : "A"

推荐阅读