python闭包(closure)

python闭包(closure)其实并不是什么很复杂的东西,其定义是:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。它只不过是个“内层”的函数,由一个名字(变量)来指代,而这个名字(变量)对于“外层”包含它的函数而言,是本地变量。

简单的闭包例子:

def add(num):

   def add_inner(num_inner):

       return num+num_inner

   return add_inner

 

执行p=add(23)将会产生内层函数add_inner的一个闭包,这个闭包在内部引用了名字num,而num绑定到23上了。

test=add(20)

test1=add(20)

print test(100),test1(120)