python 閉包
阿新 • • 發佈:2020-08-02
如果在一個函式的內部定義了另一個函式,外部的我們叫他外函式,內部的我們叫他內函式。
閉包:
在一個外函式中定義了一個內函式,內函式裡運用了外函式的臨時變數,並且外函式的返回值是內函式的引用。這樣就構成了一個閉包。 一般情況下,在我們認知當中,如果一個函式結束,函式的內部所有東西都會釋放掉,還給記憶體,區域性變數都會消失。但是閉包是一種特殊情況,如果外函式在結束的時候發現有自己的臨時變數將來會在內部函式中用到,就把這個臨時變數繫結給了內部函式,然後自己再結束。示例程式碼:
1 #閉包函式的例項 2 3 # outer是外部函式 a和b都是外函式的臨時變數 4 def outer( a ): 5 b = 10 6 #inner是內函式 7 def inner(): 8 #在內函式中 用到了外函式的臨時變數 9 print(a+b) 10 # 外函式的返回值是內函式的引用 11 return inner 12 13 if __name__ == '__main__': 14 #此時外函式兩個臨時變數 a是5 b是10 ,並建立了內函式,然後把內函式的引用返回存 15 demo = outer(5) 16 demo() # 15 17 18 demo2 = outer(7)19 demo2()#17