#python #annotations #python-typing
Вопрос:
Я хочу получить аннотации функций, в частности значения объединения каждой аннотации. Позвольте мне показать пример:
from typing import Union
async def func(arg1: str, arg2: int, arg3: Union[str, int]):
...
# Want to get
# {arg3: [str, int], arg1: str, ...}
Я знаю func.__annotations__
, что возвращает диктант, но я не уверен в типах юнионов
Ответ №1:
Воспользуйся typing.get_args
:
>>> func.__annotations__['arg3']
typing.Union[str, int]
>>> from typing import get_args
>>> get_args(func.__annotations__['arg3'])
(<class 'str'>, <class 'int'>)