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.