Python初学者问题。假设您想动态创建一个保持某种状态的函数(在整数 i 下面的代码中)。然后由于定义的函数是一个对象,我们可以稍后使用它。在下面的代码中,我将函数添加到列表中,每次调用都print(fn(0))
应该导致0 1 2 3 4
,但我得到4 4 4 4 4
的好像只使用了最新的值i
。
fns = []
for i in range(5):
def fn(x):
return x + i
fns += [fn]
print(fns)
for fn in fns:
print(fn(0))
quit()
是否有可能在 Python 中完成这段代码试图做的事情?