P1 · 應會
資料
可變預設參數 (Mutable Default Argument)
是什麼
Python 函式的預設參數只在函式定義時求值一次;若預設值是 list、dict 等可變物件,每次呼叫都共用同一個物件,前一次呼叫的修改會累積到下一次。
解決什麼問題
避免資料處理函式在多次呼叫間偷偷累積狀態;寫法是把預設值設為 None,再於函式內建立新的串列或字典。
考場 Trigger
- 函式預設參數寫成 tags=[]
- 連續呼叫後串列越來越長
- 預設值只在定義時建立一次
中級深度
能推出 tags=[] 當預設值時連續呼叫兩次的輸出,並寫出改用 tags=None 再於函式內建串列的修正。