Возврат нескольких значений из функции

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

Что нужно знать

Перед изучением примера полезно понимать:

Пример 1. Возврат значений через запятую

def name():
    return "John","Armin"

# print the tuple with the returned values
print(name())

# get the individual items
name_1, name_2 = name()
print(name_1, name_2)

Вывод

('John', 'Armin')
John Armin

Когда в return указано несколько значений через запятую, они возвращаются как кортеж. В коде выше одной инструкцией return возвращены две строки — "John" и "Armin". Этот кортеж можно либо распечатать целиком, либо распаковать в отдельные переменные.

Пример 2. Возврат через словарь

def name():
    n1 = "John"
    n2 = "Armin"

    return {1:n1, 2:n2}

names = name()
print(names)

Вывод

{1: 'John', 2: 'Armin'}

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