lambda函数是否可以捕获外部变量?

2023-03-14 00:00:00 函数 变量 捕获

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关键字来声明变量为非局部变量。

相关文章