3
def funct():
x = 4
action = (lambda n: x ** n)
return action
x = funct()
print(x(2)) # prints 16
...我不太明白爲什麼2會自動分配給n?嵌套的Scopes和Lambdas
def funct():
x = 4
action = (lambda n: x ** n)
return action
x = funct()
print(x(2)) # prints 16
...我不太明白爲什麼2會自動分配給n?嵌套的Scopes和Lambdas
n
是由funct
返回的匿名函數的參數。 funct
的確切等效定義爲
def funct():
x = 4
def action(n):
return x ** n
return action
這種形式是否更有意義?
它沒有被「自動」分配:它被非常明確地分配,並且非 - 通過將它作爲參數n
對應的實際參數自動傳遞。設置x
的複雜方式與def x(n): return 4**n
幾乎完全相同(扣除x.__name__
和其他較小的內省細節)。
[初學者]和λ。考慮到lambda不適合初學者並跳過它們。別理他們。你不需要它們。 – 2010-01-05 11:26:03