一、閉包函數:
在一個外函數中定義一個内函數,内函數裡運用了外函數的臨時變量,并且外函數的傳回值是内函數的引用。
二、執行個體:
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