看看理解对不对...
Topic sourcedef count(): fs=[] for i in range(1,4): def f(): print('--------') return i*i fs.append(f) print('=======') print('++++++') return fs
f1,f2,f3=count() #从输出进行反推可以知道,=count()时已经将for循环执行完了,输出3个"=======",1个"++++++"
xx=f1() #f1()时才去调用f()函数,此时i=3,所以结果是9
print(xx)
- 1
拜德沃夫
作为小白求确认...f1,f2,f3作为三个不同函数能理解,对于都输出9不知道我这样的理解对不对: 闭包的话就是里面循环管循环自己运行掉了,然后函数的话是等调用的时候在执行,这时候循环已经结束(或者说都被覆盖掉了?),i=3,所以结果是9,9,9