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