Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 嵌套作用域和lambda_Python_Lambda_Nested - Fatal编程技术网

Python 嵌套作用域和lambda

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

。。。我不太明白为什么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.\uuuu name\uuuuuu
和其他次要内省细节):返回4**n

[初学者]和[lambda]。认为lambdas不是初学者的,跳过它们。别理他们。你不需要它们。
def funct():
    x = 4
    def action(n):
        return x ** n
    return action