flist = []
for i in range(3):
flist.append(lambda: i)
for f in flist:
print f()
我不知道为什么它返回2,2,2
最佳答案
在第一个循环的最后一次迭代中,您的 i
值为 2,因此列表中每个元素中的所有 i
值现在均为 2。这是因为您已经创建了对 i
变量的实时引用。
这是一个简化的演示:
a = 5
c = lambda: a
a += 5
>>> c()
10
关于python - 怎么返回结果是这样的,这段代码中的lambda函数是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24446510/