Я хочу задать вопрос о том, как функции назначаются переменным.
Я новичок в Python и изучаю функции.
Рассмотрим следующий блок кода из w3schools :
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
Я знаю, что lambda
является анонимной функцией только с one выражение, которое оценивается и возвращается.
Это показано внутри myfunc(n)
:
return lambda a: a * n
myfunc
принимает аргумент, который в этом случае равен 2, поэтому любое число a
будет удвоено.
Однако я запутался здесь.
В этой строке:
mydoubler = myfunc(2)
Я думал, что мы присваиваем результат myfunc
mydoubler
, но в выражении print:
print(mydoubler(11))
мы передавая аргумент 11
, но мы никогда не указывали параметр a
где-либо в объявлении функции.
Как код python знает, что 11
в этом случае внутри оператора print связан с a
?