Код: Выделить всё
def instantiate[T](class_: type[T], a: int, b: str) -> T:
return class_(a, b)
Я думал об использовании протокола
Код: Выделить всё
class FitForInstantiate(Protocol):
__init__: Callable[[int, str], None]
Код: Выделить всё
def instantiate[T: FitForInstantiate](class_: type[T], a: int, b: str) -> T:
return class_(a, b)
Код: Выделить всё
class A:
def __init__(self, a: int, b: str):
self.a = a
self.b = b
class B:
def __init__(self, a: int, b: int):
self.a = a
self.b = b
Код: Выделить всё
class A:
def __init__(self, a: int, b: str, c: list | None = None):
self.a = a
self.b = b
self.c = c or []
Есть ли способ использовать типизацию Python так, чтобы все классы соответствовали __init__< /code> подписи будут считаться правильным типом?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Мобильная версия