Назад к вопросам
Junior
64
questionbank

Что такое аннотация типов Union в Python?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Union в Python (из модуля typing) указывает, что переменная или возвращаемое значение может иметь один из нескольких типов.

Например:

# Указывает, что переменная 'value' может быть либо int, либо str
from typing import Union

def process_data(value: Union[int, str]) -> Union[int, str]:
    if isinstance(value, int):
        return value * 2
    else:
        return value.upper()

# Пример использования
result1 = process_data(10)
result2 = process_data("hello")

print(result1) # Выведет 20
print(result2) # Выведет HELLO

С версии Python 3.10 можно использовать оператор | для синтаксического сахара:

# Эквивалентно Union[int, str] в Python 3.10+
def process_data(value: int | str) -> int | str:
    if isinstance(value, int):
        return value * 2
    else:
        return value.upper()

result1 = process_data(10)
result2 = process_data("hello")

print(result1) # Выведет 20
print(result2) # Выведет HELLO

Union полезен для повышения читаемости кода, его поддержки статическими анализаторами типов (такими как MyPy) и информирования разработчиков о возможных типах данных. Он не предоставляет проверок типов во время выполнения, это задача статических анализаторов или явных проверок isinstance.