一、闭包函数:
在一个外函数中定义一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。
二、实例:
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() #
三、闭包函数修改外函数局部变量:
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