def printName(name):
print(name)
if __name__ == "__main__":
lambdaList = []
for i in range(4):
lambdaList.append(lambda : printName(i))
lambdaList[0]()
我刚刚学习了lambda函数。在这种情况下,我想像上面定义不同的lambda函数。但是,此脚本的结果是:
0
1
2
3
我对这个结果有些困惑。当我将新元素添加到此列表时,为什么第一个lambda函数会更改。 我希望有人能帮助我。
答案 0 :(得分:0)
这是因为lambda中的i
与i
循环所更新的for
在内存中是相同的。