为什么 Python For 循环中的 Lambda 函数仅捕获最后一个值?
Dec 06, 2024 am 02:29 AMfor 循环中的 Lambda 仅获取最后一个值
在 for 循环中使用 lambda 函数时,lambda 捕获的值可能不是预期的值。这个问题的出现是由于 Python 垃圾回收的运作方式,导致只保留变量的最后一个值。
为了说明这个概念:
1 2 3 4 5 6 7 8 |
|
在此代码中,每个 lambda 函数应该捕获选项的唯一值,但所有选项的行为就像选项被设置为“DEBUG”,它在循环中假定的最终值。
要解决这个问题,正如解决方案中所建议的,每个 lambda 函数必须捕获自己的变量。这可以通过为 option 分配一个新的局部变量来实现,如下所示:
1 2 3 4 5 6 |
|
或者,可以按如下方式重写 lambda 表达式:
1 |
|
通过捕获适当的值, lambda 函数可以在循环内独立运行,从而实现预期的行为。
以上是为什么 Python For 循环中的 Lambda 函数仅捕获最后一个值?的详细内容。更多信息请关注PHP中文网其他相关文章!

热门文章

热门文章

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)