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