天天看點

python筆記 高階函數

0 環境

  • 編輯器:idea或vscode
  • 系統版本:windows10
  • python版本:3.9.6

1 前言

什麼是高階函數,學它有啥用處,先回答用處,它是之後學的裝飾器算是它的延伸,一開始學裝飾器都是有點似懂非懂的,但是先搞明白了高階函數,再去看裝飾器,明顯就會輕松好多,窗戶紙一捅就破的那種。

2 高階函數的定義

高階函數和普通函數到底有哪些差別,不都是函數?這裡是看它的傳回值,高階函數的傳回值是一個函數或者參數是函數的函數的情況下,就是高階函數。拆分開來就是情況一、它的傳回值是個函數,情況二、它的入參是個函數,這兩種情況的函數,符合高階函數。函數可以被指派給變量(a = fn),正常被調用(a())。

函數當參數的情況下,也是可以的,compare接收函數的,預設為None,當我調用demo函數時,傳入一個清單,一個匿名函數,demo函數執行compare兩個值的比較結果,最終return出去。

def demo(val, compare=None):
    a, b = val[:2]
    return compare(a, b)

if __name__ == '__main__':
    print(demo([2, 3, 4], compare = lambda a, b: a < b))      

3 總結

繼續閱讀