在循环中创建函数我试图在循环中创建函数: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种不同的函数?
2 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
i
i
2
).
def f():
def f(i=i):
def f(i=i): return i
i
i=i
i
i
i=i
def
call
f
def make_f(i): def f(): return i return f
f = make_f(i)
def
添加回答
举报
0/150
提交
取消