Для того, чтобы сделать использование функций ещё удобнее, в Python есть оператор
Здесь функция
Таким образом, можно быстро выводить содержимое списков, результаты работы генераторов или функций, возвращающих кортежи или списки.
* — распаковка.
Его можно применять только применительно к параметрам вызываемой функции.
При этом происходит следующее: из объекта, к которому применяется распаковка, извлекаются отдельные элементы и передаются в качестве отдельных параметров:
Рассмотрим пример:
def func1(): return 2, 5, 7def func2(x, y, z): print(x + y + z)func2(*func1()) |
func1() возвращает кортеж из трёх чисел,
а функция func2() принимает на вход три элемента.
Результат работы первой функции можно передать сразу во вторую, если распаковать результат её работы.
Другой пример использования распаковки --- это передача одного и того же набора параметров в разные функции:
def func1(x, y): print(x + y)def func2(x, y): print((x ** 2 + y ** 2) ** 0.5)pars = (3, 7)func1(*pars)func2(*pars) |
Очень удобно использовать распаковку — внутри функции print:
def fibonacci(n): fib1, fib2 = 0, 1 for i in range(n): fib1, fib2 = fib2, fib1 + fib2 yield fib1print(*fibonacci(10)) |
Также при помощи распаковки можно передавать числовые параметры из стандартного ввода в функцию в одну строчку:
def max(a, b, c): return max(max(a, b), c)print(max(*map(int, input().split()))) |
Последнее изменение: Суббота, 15 Август 2020, 02:35