я выше указывал, он дженерик успешно определил. Но вот в другом примере, он уже ругается на следующее:
from typing import List, TypeVar
T = TypeVar("T")
class Base:
def __init__(self, a):
self.a = a
@classmethod
def to_list(cls: T, list_of_dict: list) -> List[T]:
return [cls(**d) for d in list_of_dict]
class A(Base):
@property
def b(self):
return self.a * 2
def test() -> List[A]:
return A.to_list([{"a": 1}, {"a": 3}])
# Expected type 'List[A]', got 'List[Type[A]]' instead
Он на последнюю строчку ругается как: Expected type 'List[A]', got 'List[Type[A]]' instead
Вот только не пойму, разве в тайпингах List[A] и List[Type[A]] — это не одно и тоже?
cls - это не экземпляр клaсса Т, а сам класс Т Правильно писать cls: Type[T]
Ты там случайно pydantic не изобретаешь?
Обсуждают сегодня