總結----閉包
閉包
一,定義:閉包包含兩個函式,內部函式和外部函式,外部函式裡面定義了內部函式,內部函式使用外部函式的臨時變數,外部函式的返回值是內部函式的引用
需要說明下:
一個函式,如果函式名後緊跟一對括號,相當於現在我就要呼叫這個函式,如果不跟括號,相當於只是一個函式的名字,裡面存了函式所在位置的引用
eg:
def outer(k, b): def inner(x): print(k * x + b) return inner outer1 = outer(2, 5) outer1(2)
python常用的功能裝飾器使用了閉包
二,區別:函式,匿名函式,閉包,面向物件
匿名函式能夠完成基本的簡單功能,傳遞的是這個函式的引用,只有功能。
普通函式能夠完成較為複雜功能,傳遞的是這個函式的引用,只有功能。
閉包,能夠完成複雜的功能,傳遞的是這個閉包的函式和資料,因此傳遞的是功能+資料
物件,能夠完成最為複雜的功能,傳遞的是很多資料和很多功能,因此傳遞的是功能+資料。