Как создать экземпляр типа указанного в дженерике?
class Cat[T]:
def __init__(self):
self.prop = T()
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Вариант через передачу фабрики (функции) для значения prop
:
from typing import Callable
class Cat[T]:
prop: T
def __init__(self, prop_factory: Callable[[], T]) -> None:
self.prop = prop_factory()
cat = Cat(str)
Дополнительно указывать str в квадратных скобках (типа cat = Cat[str](str)
) не нужно (излишне), тайп чекеры и так определят тип T по типу возвращаемого значения переданной фабрики.