Python - как передать тип аргумента функции объекта класса (типирование) - PullRequest
0 голосов
/ 18 апреля 2019

Полагаю, что в 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())
...