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