【发布时间】:2017-01-30 10:19:34
【问题描述】:
为什么在 python 中
[f() for f in [lambda: d for d in [1,2]]]
给了
[2, 2]
为什么结果与其他语言不同(结果是 [1,2] 符合预期)? 这种不明显的行为有一些合理的原因吗?
【问题讨论】:
-
参数范围可能吗?需要一个闭包来保留以前的值。可能与Scope of python lambda functions and their parameters 重复
标签: python lambda scope garbage-collection