Код: Выделить всё
class A:
...
class B(A):
...
Код: Выделить всё
class C:
def foo(self) -> list[type[A]]: ...
class D(C):
def foo(self) -> list[type[B]]: ...
Я читал о ковариантности и контравариантности в Python, и мне показалось, что определение ковариантного типа следующим образом может помочь решить проблему
Код: Выделить всё
T = TypeVar('T', bound=A, covariant=True)
class C:
def foo(self) -> list[T]: ...
class D(C):
def foo(self) -> list[type[B]]: ...
Кто-нибудь знает способ решить эту проблему?
Подробнее здесь: https://stackoverflow.com/questions/771 ... ubclass-of