Як повернути кілька значень, що повертаються у функції Python

Бізнес

У C повертати кілька значень, що повертаються з функції, досить утомливо, але в Python це зробити дуже легко.

Повернення через кому

У Python ви можете просто повернути розділений комами список рядків або чисел.

Як приклад, визначте функцію, яка повертає лише рядок і число, як показано нижче, після чого кожне з них відокремлюється комою.

def test():
    return 'abc', 100

У Python значення, розділені комами, вважаються кортежами без дужок, за винятком випадків, коли це синтаксично необхідно. Отже, функція у прикладі вище поверне кортеж із кожним значенням як елементом.

Саме кома створює кортеж, а не круглі дужки. Круглі дужки можна опускати, за винятком випадків порожніх кортежів або коли це необхідно, щоб уникнути синтаксичної двозначності.
Built-in Types — Python 3.10.0 Documentation

Типом повертається значення є кортеж.

result = test()

print(result)
print(type(result))
# ('abc', 100)
# <class 'tuple'>

Кожен елемент матиме тип, визначений функцією.

print(result[0])
print(type(result[0]))
# abc
# <class 'str'>

print(result[1])
print(type(result[1]))
# 100
# <class 'int'>

Помилка, якщо ви вказали індекс, який перевищує визначену вами кількість повертаних значень.

# print(result[2])
# IndexError: tuple index out of range

Його можна розпакувати, а окремим змінним можна призначити декілька значень, що повертаються.

a, b = test()

print(a)
# abc

print(b)
# 100

Те ж саме стосується, якщо ви хочете вказати три або більше повернутих значень замість двох.

def test2():
    return 'abc', 100, [0, 1, 2]

a, b, c = test2()

print(a)
# abc

print(b)
# 100

print(c)
# [0, 1, 2]

Повертає список.

[]Якщо ви укладете його разом із цим, то повернутим значенням буде список, а не кортеж.

def test_list():
    return ['abc', 100]

result = test_list()

print(result)
print(type(result))
# ['abc', 100]
# <class 'list'>