根据百度 知道的解释
闭包是为了在代码退出或者执行完后,能够保持它当时的运行环境,不被gc
当然了,这是我的个人理解。
python 的一个例子。
>>> import os,sys
>>> def a (s=0):
... r=[s]
... def x():
... r[0]+=1
... return r
... return x
...
>>> c=a()
>>> print c()
>>> print c()
[1]
>>> print c()
[2]
>>> print c(100)
Traceback (most recent call last):
File "
TypeError: x() takes no arguments (1 given)
>>> c=a(100)
>>> print c()
>>> print c()
[101]
a 函数执行完后,他执行时的上下文环境,因为存在函数c 通过x 的引用,而导致gc 不能回收a 的环境。