def funct():
x = 4
action = (lambda n: x ** n)
return action
x = funct()
print(x(2)) # prints 16
... Не совсем понимаю, почему 2 присваивается n автоматически?
def funct():
x = 4
action = (lambda n: x ** n)
return action
x = funct()
print(x(2)) # prints 16
... Не совсем понимаю, почему 2 присваивается n автоматически?
n
- аргумент анонимной функции, возвращаемый funct
. Точно эквивалентное определение funct
:
def funct():
x = 4
def action(n):
return x ** n
return action
Имеет ли смысл эта форма?
Он не назначается «автоматически»: он назначается очень явно и не -автоматически, если вы передаете его в качестве фактического аргумента, соответствующего параметру n
. Этот сложный способ установки x
практически идентичен (без x.__name__
и других второстепенных интроспективных деталей) def x(n): return 4**n
.