Воспроизвести:
from typing import Generic, TypeVar
class Base:
pass
class Derived:
pass
T = TypeVar('T', bound=Base)
class BaseWriter(Generic[T]):
def write(self, obj: T):
pass
class DerivedWriter(BaseWriter[Derived]):
pass
writer = DerivedWriter()
derived = Derived()
writer.write(derived)
Последняя строка аннотируется PyCharm как ошибка типа
Ожидаемый тип 'Производный' (соответствует generi c тип 'T' ), вместо этого получил 'Derived'.
Я неправильно использую TypeVar
, или это ошибка типа hinter?