在循环中创建函数
我试图在循环中创建函数:
functions = []for i in range(3): def f(): return i # alternatively: f = lambda: i functions.append(f)
问题是所有的函数最终都是相同的。这三个函数都返回2,而不是返回0、1和2:
print([f() for f in functions])# expected output: [0, 1, 2]# actual output: [2, 2, 2]
为什么会发生这种情况,我应该怎么做才能得到分别输出0、1和2的3种不同的函数?
慕姐8265434
相关分类