Python 嵌套作用域和lambda
。。。我不太明白为什么2会自动分配给n?Python 嵌套作用域和lambda,python,lambda,nested,Python,Lambda,Nested,。。。我不太明白为什么2会自动分配给n?n是funct返回的匿名函数的参数。函数的一个完全等价的定义是 def funct(): x = 4 action = (lambda n: x ** n) return action x = funct() print(x(2)) # prints 16 这个表单有什么意义吗?它不是“自动”赋值的:它被非常明确地赋值,并且非——通过将它作为与n参数相对应的实际参数来自动赋值。将x设置为defx(n)的复杂方法几乎相同(不包括x
n
是funct
返回的匿名函数的参数。函数
的一个完全等价的定义是
def funct():
x = 4
action = (lambda n: x ** n)
return action
x = funct()
print(x(2)) # prints 16
这个表单有什么意义吗?它不是“自动”赋值的:它被非常明确地赋值,并且非——通过将它作为与
n
参数相对应的实际参数来自动赋值。将x
设置为defx(n)的复杂方法几乎相同(不包括x.\uuuu name\uuuuuu
和其他次要内省细节):返回4**n
[初学者]和[lambda]。认为lambdas不是初学者的,跳过它们。别理他们。你不需要它们。
def funct():
x = 4
def action(n):
return x ** n
return action