bound="Base")
class Base:
var1 = []
@classmethod
def fun1(cls: Type[T]) -> List[T]:
cls.var1.append(1) # Pycharm тут не видит, что у cls есть var1
return [cls(), cls()]
class A(Base):
pass
print(A.fun1()) # -- список объектов класса A
Имеется базовый класс Base, от него наследуются другие классы. Метод fun1 должен возвращать список объектов, класс которых не базовый, а уже как у ребенка. И текущие тайпинги это все делают.
Но проблема теперь в том, что внутри метода fun1() объект cls больше не определяется как Base, и пайчарм не видит что у cls есть var1.
Как тайпингами дать понять, что хоть cls теперь и параметризован, он он все ж является классом Base?
Кмк это бага пайчарма
Нахрен тебе мутируемое поле класса?
Обсуждают сегодня