Page cover

範例


範例 – 使用 Enums 進行比較

Enums 可以進行比較。例如:is, ==...。

當您比較 enum members 時,最好透過它們的 identity來比較它們(使用 is),而不是通過它們的值來比較它們(使用 == )。 這是因為不同的 enum members "可能"具有相同的值。

PYTHON
from enum import Enum

class Size(Enum):
    S = 1
    M = 2
    L = 3
    XL = 4

print(Size.S.value < Size.M.value)    # Output: True
print(Size.L.value > Size.XL.value)   # Output: False
print(Size.L.value is Size.XL.value)  # Output: False

範例 – 影像處理


範例 – 深度學習


建立不同類型的深度學習模型:

建立不同類型的損失函數:

範例 – 應用


在此範例中,使用 enum 的好處變得更加明顯。 您可以使用 enums 擁有統一的介面 (interface),而不是使用多個方法或 string 參數來指定 operation 和輸出。 這將使您的程式碼更易於維護並降低錯誤風險。

此外,透過將這些相關常數分組為 enums Class,您可以在程序中傳遞它們並在各種 contexts 中使用它們,因為您知道它們只能具有一組定義的值。

使用 @property@setter 的主要優點是能夠在設置 enum 時加入驗證。 在這種情況下,我們確保提供的值是適當的 enum 實例。 如果不是,則會引發 ValueError。 這可以使您的代碼更加 robust,並防止出現難以追蹤的錯誤。

執行結果:

輸入
輸出

Imagenet labels id 解碼詳見: imagenet 1000 class idx to human readable labels

參考資料


enum — Support for enumerations — Python 3.11.4 documentation

Enum HOWTO — Python 3.11.4 documentation

Last updated

Was this helpful?