gpt4 book ai didi

python - 如何强制 Python 在循环内创建新变量/新范围?

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:37 25 4
gpt4 key购买 nike

<分区>

今天我探索了 Python 的一个奇怪行为。一个例子:

closures = []
for x in [1, 2, 3]:
# store `x' in a "new" local variable
var = x

# store a closure which returns the value of `var'
closures.append(lambda: var)

for c in closures:
print(c())

上面的代码打印

3
3
3

但是我想要它打印

1
2
3

我自己解释了这种行为,即 var 始终是相同的局部变量(并且 python 不会像其他语言那样创建一个新变量)。我怎样才能修复上面的代码,以便每个闭包都返回另一个值?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com