Python Glossary English

Python 3.10+Встроенные типыпонятие

types.UnionType

типы аннотаций

Тип выражения int | str — объединения типов. С Python 3.14 это псевдоним typing.Union, и обе записи дают один и тот же объект.

Синтаксис

int | str  # → объединение типов

В отличие от list[int], объединение можно передать в isinstance: isinstance(3, int | str) истинно. Порядок и повторы не важны: int | str равно str | int, а int | int — это просто int. До 3.14 типы types.UnionType и typing.Union различались, и код, проверявший type(x) is types.UnionType, пропускал записи через typing.Union; с 3.14 надёжнее typing.get_origin(x) is typing.Union.

Примеры

import types
import typing
u = int | str
print(isinstance(3, u), isinstance(3.0, u))   # → True False
print((int | str) == (str | int))   # → True
print(typing.get_args(u))   # → (<class 'int'>, <class 'str'>)
print(types.UnionType is typing.Union)   # → ? True с Python 3.14, раньше — разные типы

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности