1. 程式人生 > 其它 >python - 閉包

python - 閉包

百度百科上的定義:

閉包就是能夠讀取其他函式內部變數的函式。只有函式內部的子函式才能讀取區域性變數,所以閉包可以理解成“定義在一個函式內部的函式“。
在本質上,閉包是將函式內部和函式外部連線起來的橋樑。


舉個栗子

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