python闭包
闭包的概念:
在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这个概念比较难懂,我们通过下面的例子来进行分析
def fun1(b):
a = 1
def fun2():
print a+b
return fun2()
var = fun1(3)
var() # 打印结果为5
在上面的函数里,fun1()就是一个外部函数,fun2()是一个内部函数,正常在fun2()是在fun1()的运行过程中才会出现的,fun1()结束后,fun2()生命周期也就结束了。因此在这里用var来保存fun1()的返回结果,就相当于保存了fun2()这个函数,从而可以通过var()来调用fun2()。 fun1()里面的变量a也通过fun2()保存了下来,并没有随着fun1()的结束而消失,因此实现了闭包。
要想释放掉闭包,可以通过del var来实现
浙公网安备 33010602011771号