1. 程式人生 > 實用技巧 >Python 基礎視訊課 - 6. 函式下:高階函式

Python 基礎視訊課 - 6. 函式下:高階函式

這是 Python 基礎課的第六節 -函式下:高階函式。該系列包含 11 節,目錄如下:

  1. 程式設計概覽

  2. 元素型資料

  3. 容器型資料

  4. 流程控制:條件-迴圈-異常處理

  5. 函式上:低階函式

  6. 函式下:高階函式

  7. 類和物件:封裝-繼承-多型-組合

  8. 字串專場:格式化和正則化

  9. 解析表示式:簡約也簡單

  10. 生成器和迭代器:簡約不簡單

  11. 裝飾器:高階不簡單

上貼介紹的普通函式和匿名函式都屬於低階函式,即輸入和輸出都不是函式,而在 Python 裡函式是「一等公民」,我們可以

  • 把函式賦值給變數 (assign function to variable)

  • 把函式儲存到容器 (store functions in container)

  • 把函式傳遞給函式 (pass function to function)

  • 在函式裡返回函式 (return function in function)

如下圖所示:

高階函式在函式化程式設計 (functional programming) 很常見,主要有兩種形式:

  • 函式作為返回

  • 函式作為引數

第一種形式的典型是閉包 (closure),其特點為

  • 通常是巢狀函式 (nested function) 的結構。

  • 該結構由外函式 (outer function) 巢狀內函式 (inner function)。

  • 內函式必須引用非本地 (non-local) 變數。

  • 外函式必須返回內函式。

第二種形式的典型例子由對映函式 (map)、篩選函式 (filter)、累計函式 (reduce) 和

函式 (partial)。

此外還有種特殊的函式正規化,叫做柯里化 (currying),它可以把“接受單個引數的函式”轉換成“接受多個引數的函式”。

付費使用者(付 1 贈 1)可以獲得:

  • 觀看課程視訊 (50分鐘)

  • PDF 課件

  • Python程式碼 (Jupyter Notebook)

PDF 課件