Python Lambda混乱

时间:2018-09-19 06:43:36

标签: python lambda

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函数会更改。 我希望有人能帮助我。

1 个答案:

答案 0 :(得分:0)

这是因为lambda中的ii循环所更新的for在内存中是相同的。