Knaapje
Knaapje

Reputation: 195

Mypy type checker and "static instances"

For a class A I wrote, there are some instances foo and bar that I want to be accessible through A.foo and A.bar as class variables. However, foo and bar are both instances of A, and I'm not sure how to let the typechecker mypy handle this correctly. I currently instantiate foo and bar as follows:

class A:
  def __init__(self):
    pass

  foo = None
  bar = None

A.foo = A()
A.bar = A()

Which leads mypy to conclude that A.foo and A.bar are of type None. Annotating as Optional[A] would work, but that's misrepresenting what is intended: I want both to be of type A... Any tips?

Upvotes: 1

Views: 354

Answers (1)

kinderhead
kinderhead

Reputation: 36

If your using a higher version of python 3, you can use annotations to do this for you.

foo : A

I think mypy works with standard annotations. If this doesn't work, then try surrounding the annotation with quotes.

foo : "A"

Upvotes: 1

Related Questions