以前在ruby中用过闭包,看到python cookbook里面介绍了python的闭包的概念,并附上了相关的例子:
什么是闭包?
闭包(closure)简单的解释就是“内层函数”,由一个名字(变量)来指代,而这个名字(变量)对于“外层”包含它的函数而言,是本地变量:
eg:
def make_adder(addend): def adder(augend): return augend+addend return adder
执行p=make_adder(23)将产生内层函数adder的一个闭包,这个闭包在内部引用了名字addend,addend,而addend又绑定到数值23。q=make_adder(42)又产生了另一个闭包,这次名字addend则绑定到了值42.q和p相互之间并无关联,因此他们可以相互独立地和谐共处。
>>print p(100)
123
>>print q(100)
142