python闭包

2016-09-08  本文已影响13人  uangianlap

从表现形式上定义为:如果在一个内部函数如下面代码中的funY函数对其外部作用域funX函数进行变量(x)引用,那么我们说这个内部函数funY就是一个闭包.

def funX(x):    
    def funY(y):
        return x * y
    return funY

上面函数 funX的返回值为一个function对象,可以以funX(8)(5)这种方式调用.
注意:与在函数里引用全局变量时需要加关键字global一样,在内部函数里要引用外部函数的变量我们则使用nolocal关键字.

def funX():
    x = 25
    def funY():
        nolocal x
        x += 1
        return x
    return funY()
上一篇 下一篇

猜你喜欢

热点阅读