被lambda函数的不同行为所迷惑

时间:2019-09-29 02:04:04

标签: python-3.7

def foo():
    lst = []
    for i in range(4):
        lst.append(lambda: i)
        print(lst[i]())
    print([f() for f in lst])
foo()

这是上面代码的输出

0
1
2
3
[3, 3, 3, 3]

为什么在for循环内的第一个打印[0,4)而在for循环外的第一个打印[3,3,3,3]

0 个答案:

没有答案