Python

What functools.wraps restores when you decorate a function

A decorator replaces your function with a wrapper, so its name, docstring, and signature change. Here is exactly what functools.wraps copies back and how it records __wrapped__.

2026-07-30 · 4 min read · 752 words · KbWen · EN
Python

Python 的可變預設參數為什麼會累積

用 list 或 dict 當函式的預設參數值,資料會跨呼叫累積,因為預設值在 def 執行時就算好一次並掛在函式物件上。本文示範現象、用 __defaults__ 驗證,並給出 None 哨兵修法。

2026-07-23 · 3 min read · 1021 words · KbWen · ZH
Python 分批處理 list:itertools.batched 與四種常見寫法
Python

Python 分批處理 list:itertools.batched 與四種常見寫法

Python 3.12 起,itertools.batched 是把資料切成固定大小批次的標準做法:每批回傳 tuple,最後一批可能較短,3.13 再加上 strict。另外整理 yield、列表推導式、islice、numpy.array_split 各自吃什麼輸入。

2021-11-26 · 5 min read · 2238 words · KbWen · ZH
Python Comments
Python

Python Comments

三引號字串只有放在模組、函式或類別的第一個陳述式才會變成 docstring 進到 __doc__,放在其他位置就是一段求值完丟掉的運算式,而 # 註解在語法階段就被忽略。用 __doc__ 和 dis 實際跑一次看兩者的差別。

2020-05-04 · 5 min read · 2055 words · KbWen · ZH
OpenCV 人臉偵測
Machine Learning

OpenCV 人臉偵測

OpenCV Haar Cascade 人臉偵測:AdaBoost 弱分類器級聯架構,scaleFactor 與 minNeighbors 到底在數什麼、為什麼要一起調,用 detectMultiScale2 讀出鄰居數量,以及這些 cascade 檔案在現在的 OpenCV 裡的狀態。

2017-07-12 · 5 min read · 2038 words · KbWen · ZH
PLA 感知器演算法:權重修正那一步在做什麼
Machine Learning

PLA 感知器演算法:權重修正那一步在做什麼

根據林軒田機器學習基石課程實作 PLA,並拆開 w ← w + y·x 這一步:它對內積做了什麼、線性可分為什麼是收斂的前提、資料不可分時為什麼不會停,以及 Pocket PLA 和今天的損失函數換掉了什麼。

2017-04-18 · 5 min read · 2289 words · KbWen · ZH