Может использоваться как тип в аннотациях с помощью синтаксиса []
.
from typing import Union Union[X, Y]
X
и Y
- тип данных.Тип аннотации Union[]
модуля typing
представляет собой тип объединения typing.Union[X, Y]
эквивалентно X | Y, который означает либо X
, либо Y
.
Чтобы определить аннотацию объединения, используйте, например, Union[int, str]
.
Описание деталей использования:
Аргументы должны быть типами и должен быть хотя бы один аргумент.
Объединения сглаживаются, например:
Union[Union[int, str], float] == Union[int, str, float]
Объединения с одним аргументом исчезают, например:
# Конструктор фактически возвращает `int` Union[int] == int
Избыточные аргументы пропускаются, например:
Union[int, str, int] == Union[int, str] == int | str
При сравнении объединений порядок аргументов игнорируется, например:
Union[int, str] == Union[str, int]
Нельзя создать подкласс объединения Union
или создать его экземпляр.
Нельзя писать Union[X][Y]
.
Можно использовать Optional[X]
как сокращение для Union[X, None]
.
Изменено в Python 3.7: не удаляет явные подклассы из объединений во время выполнения.
Изменено в версии 3.10: Объединения Union
теперь могут быть записаны как X|Y
.