python 函数--闭包函数

一、闭包函数:

  在一个外函数中定义一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。

二、实例:

def outer(a): #外函数
    b = 10  #临时变量
    def inner():  #内函数
        print(a+b)
    return inner

if __name__ == "__main__":
    demo = outer(5)     #调用外函数传入值
    demo()   #15    
#内部函数调用外部函数变量,相当于执行inner函数
    demo1 = outer(7)
    demo1()    #17

三、闭包函数修改外函数局部变量:

nonlocal是python3中的语法

def outer(x):
    def inner(y):
        nonlocal x  #nonlocal选取全局变量。
        x += y
        return x
    return inner

a = outer(10)
print(a(10))
print(a(600))

四、使用

  1、可以当成装饰器使用

  2、实现单利模式

引用:https://www.cnblogs.com/Lin-Yi/p/7305364.html

原文地址:https://www.cnblogs.com/liubiaos/p/9289726.html