python中的闭包例解

以前在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

相关文章
相关标签/搜索