Одной из распространенных проблем, с которой сталкиваются начинающие разработчики на Python, является указание различных типов возвращаемых значений функции при использовании подсказок типов. В Python функция может возвращать значения разного типа, в зависимости от условий внутри функции. Например, функция может возвращать список (list
) или логическое значение (bool
), в зависимости от того, выполняется ли определенное условие.
Вот пример такой функции:
def example_function(id): if isinstance(id, int): return [id] else: return False
В этом случае, как указать типы возвращаемых значений функции при использовании подсказок типов? Просто указать list or bool
не сработает, потому что Python не будет понимать такой записи.
Решение этой проблемы предлагает модуль typing
в Python, который предоставляет специальный класс Union
для указания нескольких возможных типов возвращаемых значений. Этот класс позволяет объединить несколько типов в один с использованием оператора ,
(запятая).
Вот как это работает:
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.
Добавить комментарий