lambda函数是否可以捕获外部变量?
lambda函数可以捕获外部变量。在lambda函数中,可以访问函数定义时所在作用域中的变量。
具体来说,如果一个lambda函数引用了外部作用域中的变量,Python会将这个变量的值保存在一个特殊的闭包中,使得lambda函数在后续调用时可以访问这个变量的值。
下面是一个简单的例子,演示了lambda函数如何捕获外部变量:
>>> x = 10 >>> f = lambda y: x + y >>> f(5) 15
在这个例子中,lambda函数f引用了外部变量x,并将其与参数y相加。在调用f时,lambda函数会访问外部变量x的值,并将其与参数y相加,返回结果。
需要注意的是,如果在lambda函数中修改外部变量的值,Python会将这个变量视为局部变量,而不是闭包变量。因此,如果需要在lambda函数中修改外部变量的值,可能需要使用nonlocal关键字来声明变量为非局部变量。
相关文章