Python: type-hinting a classmethod that returns an instance of the class, for a class that is inherited
For an example of how to apply Brian’s answer: with a TypeVar: from typing import TypeVar AnyA = TypeVar(“AnyA”, bound=”A”) class A: def __init__(self): print(“A”) self.hello = “hello” @classmethod def bobo(cls: type[AnyA]) -> AnyA: return cls() class B(A): def __init__(self): print(“B”) super().__init__() self.world = “world” reveal_type(B.bobo()) # B with Self: from typing import Self class … Read more