python閉包及其寫法

閉包的概念:
1. 函數(shù)名是什么
函數(shù)名就是一個(gè)標(biāo)識(shí)符,一個(gè)指向內(nèi)存地址的變量
該變量可以被調(diào)用, 如果調(diào)用執(zhí)行則執(zhí)行的是變量指向的內(nèi)存空間中的函數(shù)體,如果不調(diào)用則是一個(gè)變量名
#函數(shù)名是什么
def show():
print(123)
#show #就是指向一個(gè)內(nèi)存空間的變量名,只不過內(nèi)存空間中存放的是函數(shù)
print( show )
show()
2. 閉包
閉包實(shí)現(xiàn)封閉作用域,讓程序訪問到不可訪問的內(nèi)部數(shù)據(jù)
閉包的實(shí)現(xiàn):將內(nèi)部函數(shù)作為一個(gè)參數(shù)返回出去,讓內(nèi)部函數(shù)具備多重身份,即可以被外部調(diào)用,又是內(nèi)部函數(shù)(可以訪問到上一級(jí)函數(shù)的數(shù)據(jù))
3. 閉包的特征
1) 函數(shù)內(nèi)嵌套函數(shù)
2) 將內(nèi)部函數(shù)作為一個(gè)返回值
3) 在內(nèi)部函數(shù)中訪問上一級(jí)函數(shù)的數(shù)據(jù)
寫法:
def outer(a):
b = 10
def inner():
print(a+b)
return inner
'''

調(diào)用方式一

res = outer(5)
res()
'''

調(diào)用方式二

outer(20)()
閉包的作用:
1. 替代簡(jiǎn)單的類
優(yōu)點(diǎn):
內(nèi)存資源占用少
執(zhí)行速度快
代碼簡(jiǎn)潔,開發(fā)速度快
2. 延遲執(zhí)行、惰性函數(shù)
如果需要做一些非常耗時(shí)的操作,可以利用閉包的延遲執(zhí)行效果,實(shí)現(xiàn)更好的用戶體驗(yàn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容