很少写复杂的代码, 所以很少用到所谓的高级功能。
根据百度 知道的解释
闭包是为了在代码退出或者执行完后,能够保持它当时的运行环境,不被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 "", line 1, in
TypeError: x() takes no arguments (1 given)
>>> c=a(100)
>>> print c()
>>> print c()
[101]
a 函数执行完后,他执行时的上下文环境,因为存在函数c 通过x 的引用,而导致gc 不能回收a 的环境。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-716218/
,如需转载,请注明出处,否则将追究法律责任。