Проблема в том, что когда функция имеет параметр, использующий тип Union, я не могу проверить переменную по нему во время выполнения.
Например, у меня есть такая функция
Код: Выделить всё
from typing import Union
def bark(myname: str, descr: Union[int, str], mynum: int = 3) -> str:
return descr + myname * mynum
Код: Выделить всё
isinstance('Arnold', bark.__annotations__['myname'])
Код: Выделить всё
isinstance(3, bark.__annotations__['descr'])
Мне не удалось найти способ проверить это с помощью объекта типа.
Я пытался реализовать проверку самостоятельно, но пока bark.__annotations__['descr'] отображается как typing.Union[int, str] в REPL я не могу получить доступ к списку типов во время выполнения, если не использую уродливый хак проверки bark.__annotations__['descr'].__repr__().
Есть ли правильный способ получить доступ к этой информации? Или он намеренно не предназначен для легкого доступа во время выполнения?
Подробнее здесь: https://stackoverflow.com/questions/459 ... ng-runtime