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)