Skip to content

Latest commit

 

History

History
52 lines (39 loc) · 3.82 KB

Типы_объединений_и_опциональные_типы.md

File metadata and controls

52 lines (39 loc) · 3.82 KB

2.2 Типы объединений и опциональные типы

В Python, когда мы работаем с переменными, часто возникает необходимость иметь дело с данными, которые могут иметь разные типы. Для этого нам на помощь приходят типы объединений (Union) и опциональные типы (Optional).

Работа с переменными, которые могут иметь разные типы

Тип объединения Union позволяет указать, что переменная может быть одного из нескольких типов. Это достигается с помощью импорта Union из модуля typing и определения типа переменной следующим образом:

from typing import Union

def process_value(value: Union[int, str]) -> None:
    print(f"The value is: {value}")

process_value(42)  # The value is: 42
process_value("hello")  # The value is: hello

В этом примере функция process_value() может принимать значения типа int или str. Это позволяет нам вызывать эту функцию с аргументами разных типов.

[!info] Использование типов объединений помогает сделать ваш код более гибким и универсальным, позволяя работать с данными различных типов.

Использование Optional для обозначения возможности отсутствия значения

Иногда нам нужно работать с переменными, которые могут иметь значение или быть None. Для этого мы можем использовать тип Optional, который является синтаксическим сахаром для Union[Some_Type, None].

from typing import Optional

def get_length(text: Optional[str]) -> int:
    if text is None:
        return 0
    else:
        return len(text)

print(get_length("hello"))  # Output: 5
print(get_length(None))  # Output: 0

В этом примере функция get_length() принимает аргумент text типа Optional[str]. Это означает, что функция может быть вызвана как с значением типа str, так и с значением типа None. Внутри функции мы проверяем, является ли text - None, и возвращаем соответствующее значение.

Important

Использование Optional помогает явно указать, что переменная может быть None, что делает ваш код более понятным и предотвращает ошибки, связанные с неожиданным отсутствием значения.

Комбинируя типы объединений и опциональные типы, вы можете создавать еще более гибкие и выразительные типы данных, которые лучше отражают структуру ваших данных и помогают предотвращать ошибки на этапе разработки.