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())
我正在学习Python,发现上面的结果是9 9 9
而不是1 4 9
。我尝试逐步调试代码,但是在IDE中,在将函数附加到列表时无法获得有关<function count.<locals>.f at 0x0000000003987598>
的任何其他信息。我想知道代码的详细顺序是什么,尤其是在追加f()
时是否会记录变量i
的值(i * i或1 * 1或其他情况)。 for i in range(1, 4)
的意义是什么?