Ответ 1
Из документации
class
typing.Union
Тип Союза; Союз [X, Y] означает либо X, либо Y.
Следовательно, правильный способ представления более одного возвращаемого типа данных -
from typing import Union
def foo(client_id: str) -> Union[list,bool]
Но обратите внимание, что ввод текста не выполняется. Python продолжает оставаться динамически типизированным языком. Синтаксис аннотации был разработан, чтобы помочь во время разработки кода до его выпуска в производство. Как указывает PEP 484, "во время выполнения проверки типа не происходит".
>>> def foo(a:str) -> list:
... return("Works")
...
>>> foo(1)
'Works'
Как вы можете видеть, я передаю значение int и возвращаю str. Однако значение __annotations__
будет установлено в соответствующие значения.
>>> foo.__annotations__
{'return': <class 'list'>, 'a': <class 'str'>}
Пройдите PEP 483 для получения дополнительных сведений о подсказках типа. Также см. Что такое подсказки типа в Python 3.5?
Обратите внимание, что это доступно только для Python 3.5 и выше. Это четко указано в PEP 484.