在Python中,閉包是一個(gè)非常重要的概念。它是指一個(gè)函數(shù)內(nèi)部定義的函數(shù),并且該內(nèi)部函數(shù)可以訪問其外部函數(shù)的變量。換句話說,這個(gè)內(nèi)部函數(shù)“記住”了其誕生環(huán)境,一般是在外部函數(shù)執(zhí)行完畢后返回一個(gè)函數(shù)對(duì)象。
看下面的示例,其中有一個(gè)外部函數(shù)outer,其內(nèi)部定義了一個(gè)內(nèi)部函數(shù)inner。inner可以訪問outer的變量x。
def outer(x): def inner(): print(x) return inner a = outer(5) a()
在這個(gè)例子中,調(diào)用outer(5)將返回inner函數(shù),該函數(shù)可以訪問外部函數(shù)的變量x,并將其打印出來。當(dāng)我們調(diào)用a()時(shí),它將執(zhí)行內(nèi)部函數(shù)inner,并打印出5。
閉包是Python的一個(gè)重要特性,因?yàn)樗试S我們在函數(shù)之間共享數(shù)據(jù),同時(shí)保持代碼低耦合。