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来实现

posted @ 2020-07-19 10:04  xiaomeng19  阅读(90)  评论(0)    收藏  举报