Python - 高階函數(shù)

1、高階函數(shù)

  • 在數(shù)學(xué)和計(jì)算機(jī)科學(xué)中,高階函數(shù)是至少滿足下列一個(gè)條件的函數(shù):
    接受一個(gè)或多個(gè)函數(shù)作為輸入
    返回一個(gè)函數(shù)

2、閉包

  • 將函數(shù)作為一個(gè)返回值的函數(shù)是高階函數(shù),我們也稱(chēng)為閉包
  • 閉包的好處
    1 通過(guò)閉包可以創(chuàng)建一些只要當(dāng)前函數(shù)能訪問(wèn)的變量
    2 可以將一些私有數(shù)據(jù)藏到閉包中
  • 形成閉包的條件
    1 函數(shù)嵌套
    2 將內(nèi)部函數(shù)作為返回值返回
    3 內(nèi)部函數(shù)必須使用到外部函數(shù)的變量

3、裝飾器的引入

  • 我們可以通過(guò)修改函數(shù)中的代碼來(lái)完成新需求,但是會(huì)產(chǎn)生一些問(wèn)題:
    1 如果修改函數(shù)過(guò)多,修改過(guò)程比較麻煩,會(huì)造成很大的工作量
    2 不方便后期的代碼維護(hù)
    3 會(huì)違反開(kāi)閉原則(Open Closed Principle,簡(jiǎn)稱(chēng)OCP);程序的設(shè)計(jì),對(duì)于擴(kuò)展是開(kāi)放的,對(duì)于修改是關(guān)閉的

4、裝飾器的使用

  • 通過(guò)裝飾器,可以在不修改函數(shù)的基礎(chǔ)上對(duì)函數(shù)進(jìn)行擴(kuò)展
  • 在開(kāi)發(fā)中,我們都是通過(guò)裝飾器來(lái)對(duì)函數(shù)進(jìn)行擴(kuò)展的
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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