闭包
闭包的特点是内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
>>> 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() 9 9 9
所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
因此,返回函数不要引用任何循环变量,或者后续会发生变化的变量。
谢谢

浙公网安备 33010602011771号