闭包

闭包的特点是内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(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

 所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。

因此,返回函数不要引用任何循环变量,或者后续会发生变化的变量。

posted @ 2015-12-12 19:14  沐风先生  阅读(143)  评论(0)    收藏  举报