【发布时间】:2014-12-24 12:26:51
【问题描述】:
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 中完成这段代码试图做的事情?
【问题讨论】:
标签: python python-3.3 function-object dynamic-function