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中完成这段代码要做的事情?你知道吗
要解决后期绑定问题,可以使用默认关键字参数:
保持自身状态的函数?我会这样做:
结果是
0 1 2 3 4
相关问题 更多 >
编程相关推荐