关于python闭包的问题
针对课后的问题,我们可以知道原来的错误代码问题出在了:向fs这个list中加入的是函数f的引用,而非f()计算后的值,所以导致最终运行时,i=3,所有结果都为9.
那么,问题来了:
对于课后的习题我可不可以这样:
def count():
fs=[]
for i in range(1,4):
def f(i):
return i*i #定义一个函数计算i*i的值
r=f(i) #调用函数f,并将返回值赋给r
fs.append(r) #将r输入到fs这个list中
return fs
f1,f2,f3=count()
print f1(),f2(),f3()
请问哪里出了问题?