python - 閉包
阿新 • • 發佈:2021-10-21
百度百科上的定義:
閉包就是能夠讀取其他函式內部變數的函式。只有函式內部的子函式才能讀取區域性變數,所以閉包可以理解成“定義在一個函式內部的函式“。
在本質上,閉包是將函式內部和函式外部連線起來的橋樑。
舉個栗子
def sum(a): def add(b): return a + b return add num = sum(2) print(num) print(type(num)) print(num.__name__) # 列印函式的名稱,從結果可以看出,返回函式add # 執行結果 <function sum.<locals>.add at 0x0000000001E11048> <class 'function'> add
解析說明
如果再一個函式內部嵌套了另外一個函式(將外部的函式和內部的函式成為外函式和內函式),函式中引用了外函式中的變數,並且外函式的返回值是內函式,稱之為 閉包。
上面的列子:
sum 為外函式,add 為內函式;
內函式 add 引用了外函式 sum 的變數a;
外函式 sum 返回內函式 add