Python Glossary English

все Python 3Кортежи (tuple)понятие

Кортеж в return функции

применение

Функция может возвращать несколько значений — Python упаковывает их в кортеж.

Синтаксис

return a, b, c  # ≡ return (a, b, c)

Никаких «нескольких значений» на самом деле не возвращается — уходит один кортеж, а разбирает его распаковка на стороне вызова. Отсюда классическая поломка: добавили в return четвёртое значение — и все прежние вызовы вида a, b, c = f() падают с ValueError. Когда значений больше трёх или их порядок легко перепутать, надёжнее NamedTuple или dataclass: там поля читают по имени, а не по позиции.

Примеры

def minmax(lst):
    return min(lst), max(lst)
lo, hi = minmax([3, 1, 4, 1, 5, 9])
print(lo, hi)
# → 1 9
def divmod_ex(a, b):
    return a // b, a % b
q, r = divmod_ex(17, 5)
print(q, r)
# → 3 2
def parse_point(s):
    x, y = s.split(',')
    return int(x), int(y)
print(parse_point('3,4'))
# → (3, 4)
result = minmax([3, 1, 4])
print(type(result))
# → <class 'tuple'>
def triple(x):
    return x, x*2, x*3
a, b, c = triple(5)
print(a, b, c)
# → 5 10 15

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности