Для того, чтобы сделать использование функций ещё удобнее, в Python есть оператор
Здесь функция
Таким образом, можно быстро выводить содержимое списков, результаты работы генераторов или функций, возвращающих кортежи или списки.
*
— распаковка.
Его можно применять только применительно к параметрам вызываемой функции.
При этом происходит следующее: из объекта, к которому применяется распаковка, извлекаются отдельные элементы и передаются в качестве отдельных параметров:
Рассмотрим пример:
def func1(): return 2 , 5 , 7 def 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 fib1 print ( * fibonacci( 10 )) |
Также при помощи распаковки можно передавать числовые параметры из стандартного ввода в функцию в одну строчку:
def max (a, b, c): return max ( max (a, b), c) print ( max ( * map ( int , input ().split()))) |
Последнее изменение: Суббота, 15 Август 2020, 02:35