Сообщить об ошибке.

Тип аннотации Union модуля typing в Python

Типизация объединений Union

Может использоваться как тип в аннотациях с помощью синтаксиса [].

Синтаксис:

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.