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Сообщить о неточности