热评第二 代码无法运行?
s.append(f),只是将每一个f()的引用保存进了list,并没有进行对于i的计算,所以导致最后在运行了f(1)之后,i已经变为了3,所以会一样结果都为9.只要将这里改为fs.append(f())即可,这样就在这一步的时候已经进行了i*i的运算,将结果保存了,通过这一题可以注意到在python这门语言之中,f与f()的大区别。
按照 热评第二 的说法,
def count():
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f()) #仅修改此处
return fs
f1, f2, f3 = count()
print f1(),f2(),f3()
运行结果为TypeError: 'int' object is not callable