内层函数套用外层函数并且返回内层函数的情况,被称为闭包(Closure)。
def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count()此代码运行结果并非1,4,9,而是9!
这个例子告诉我们,返回闭包一般不要采用循环变量或者后续会发生变化的变量。