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