def funct():
x = 4
action = (lambda n: x ** n)
return action
x = funct()
print(x(2)) # prints 16
......我不太明白为什么2会自动分配给n?
答案 0 :(得分:5)
n
是funct
返回的匿名函数的参数。完全等同于funct
的定义是
def funct():
x = 4
def action(n):
return x ** n
return action
这种形式是否更有意义?
答案 1 :(得分:3)
它没有“自动”分配:它通过将其作为与n
参数对应的实际参数传递,非常明确地分配并且非 - 自动分配。设置x
的复杂方式与x.__name__
几乎相同(扣除def x(n): return 4**n
和其他次要内省细节)。