Python возвращает несколько значений
С Python мы можем возвращать несколько значений одновременно. Очевидно, что большинство функций в Python возвращают одно значение, обычно результат работы, проделанной этой функцией. Из этой статьи вы узнаете, что в Python также можно возвращать несколько значений, и для этого вам не нужен словарь, список или класс данных.
Содержание
Вернуть несколько значений с помощью кортежа
Все, что вам нужно сделать, это перечислить ваши значения после оператора return, разделенные запятыми. Вот пример того, как вернуть несколько значений и как присвоить их нескольким переменным одновременно:
def get_user(id): # fetch user from database # .... return name, birthdate name, birthdate = get_user(4)
Что мы на самом деле делаем здесь, так это возвращаем кортеж. Мы могли бы написать return (name, birthdate)
тоже с тем же эффектом. И если вам интересно, можно ли таким образом вернуть более двух значений:да, можете!
Наиболее очевидным преимуществом возврата нескольких значений в Python с использованием кортежа является то, что мы можем напрямую присвоить результат нескольким переменным. Он очень чистый и лаконичный, как и должен был быть Python.
Альтернативные способы возврата нескольких значений в Python
Использование кортежей для возврата нескольких значений в Python подходит для ограниченного числа значений. Поскольку мы можем напрямую распаковать их в переменные с четкими именами, это на самом деле приводит к очень читаемому и лаконичному коду.
Однако, как только вы получите более 2 или 3 значений, вам следует изучить класс данных, чтобы ваш код был чистым и читабельным. Класс данных — это, по сути, обычный класс с аннотацией @dataclass
. чтобы дать ему несколько удобных дополнительных функций.
Если класс данных не подходит, потому что вы используете более старую версию Python, например, вы также можете рассмотреть возможность возврата:
- словарь Python,
- список Python,
- или обычный класс (объект).
Что лучше, зависит от типа данных, которые вы возвращаете. Если данные хорошо вписываются в список, используйте список. Если данные имеют ключи и значения, используйте словарь. Если ваши данные более сложны, вам может даже понадобиться поместить несколько списков в словарь. Просто помните, что в какой-то момент будет чище использовать класс (данных).
Продолжайте учиться
- Узнайте все о кортежах и словарях Python
- Мое введение в функции
- Более продвинутые приемы работы с функциями Python в нашем подробном обзоре функций Python
Python