Тесты Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
16 Июл 2023
2 мин
1028

Указание нескольких типов возвращаемых значений в Python с использованием type hints

Пройдите тест, узнайте какой профессии подходите
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Одной из распространенных проблем, с которой сталкиваются начинающие разработчики на Python, является указание различных типов возвращаемых значений

Одной из распространенных проблем, с которой сталкиваются начинающие разработчики на Python, является указание различных типов возвращаемых значений функции при использовании подсказок типов. В Python функция может возвращать значения разного типа, в зависимости от условий внутри функции. Например, функция может возвращать список (list) или логическое значение (bool), в зависимости от того, выполняется ли определенное условие.

Вот пример такой функции:

1
2
3
4
5
def example_function(id):
    if isinstance(id, int):
        return [id]
    else:
        return False

В этом случае, как указать типы возвращаемых значений функции при использовании подсказок типов? Просто указать list or bool не сработает, потому что Python не будет понимать такой записи.

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

Вот как это работает:

1
2
3
4
5
6
7
from typing import Union
 
def example_function(id) -> Union[list, bool]:
    if isinstance(id, int):
        return [id]
    else:
        return False

В приведенном выше примере Union[list, bool] означает, что функция example_function может возвращать значения типа list или bool.

Таким образом, с помощью подсказок типов и класса Union из модуля typing, можно эффективно указать несколько возможных типов возвращаемых значений функции в Python.

Добавить комментарий