все 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Сообщить о неточности