Python API 開發:善用 Enum 的三大關鍵特性
想必你知道 Python 中有一個內建的特殊類別叫 Enum(來自 enum 模組),專門用來處理「列舉」態型的資料集合。
如同 collection 模組中的各種容器(比如:deque
、Counter
),Enum 已經定義好很多「內建特性(屬性、方法、行為)」供你使用。這些特性會讓你在處理特定情境時非常順手。
但是,這些特性也使得 Enum 類別與一般類別有著很大的差異,增加了學習門檻。
如你所見,Enum 的特性頗多,這讓人在學習、使用之前,難免有點望之卻步——至少我是這樣!
本文主旨與架構
本文分享我最近才開始把 Enum 應用在 API 開發中的經驗——從它的三大特性入手,並輔以一個實際問題情境。
Enum 的特性不少,但只要知曉這三件事,就可以在遇到「列舉」欄位時,善用 Enum 來提升開發效率,同時增進程式碼的簡潔與穩健。
不過話說回來,即使不是開發 API,也不影響你對本文的理解。只是我的經驗是從後端開發而來。
本文架構
為了讓你感受 Enum 的強大與美妙,本文的架構經過精心設計。共分為三個部分:
- 問題情境:我會先提出一個問題情境,突顯舊方法的不足。
- 然後再介紹 Enum 的三大特性,帶你進入 Enum 的世界。
- 最後看 Enum 特性在問題情境中如何有效發揮,讓程式碼變得更加優雅——也就是它解決的痛點。
藉由這個流程,相信你對 Enum 會有更進一步的理解。