Полагаю, что в python 3.7 (не уверен) появилась возможность передавать в функцию не только имя переменной, но и тип переменной. Я хотел бы знать, есть ли возможность передачи типа определенного класса.
Точно так же, как вы могли бы пройти:
def foo_func(i: int) -> None:
pass
Если у меня есть класс, скажем:
class foo_class(object):
pass
Как я мог преобразовать foo_func
, чтобы получить foo_class
вместо int
типа?
Кроме того, если бы foo_class был наследованием другого класса, мог бы я навязать более общий тип от родителя? Например, если бы я имел,
class A(foo_class):
pass
class B(foo_class):
pass
Как я могу передать A
или B
в зависимости от его родителя?
Я имею в виду что-то вроде:
def foo_func(obj: foo_class_type) -> None:
pass
foo_func(A())
foo_func(B())