Python Enum 列舉

Python 版本需要在 3.4 或以上

定義列舉:
    
from enum import Enum


class Color(Enum):
    RED = 'red'
    BLACK = 'black'
    

注意事項:
  • 列舉的名稱不可以重複
  • 列舉的資料可以是任意資料型態,例如 int, str, class 等
查看列舉的成員、名稱、值:
    
background_color = Color.BLACK
print(f"Color.RED: {background_color}") # Color.RED: Color.RED
print(f"Color.RED.name: {background_color.name}") # Color.RED.name: RED
print(f"Color.RED.value: {background_color.value}") # Color.RED.value: red
    

比較時要直接拿列舉成員來比較,不要直接比較值:
    
background_color = Color.BLACK


if background_color == Color.RED:
    print("Background color is red.")
else:
    print("Background color is not red.")
    

歷遍:取得全部的列舉成員
    

for color in Color:
    print(color)
    
    # Color.RED
    # Color.BLACK
    



參考資料:
docs.python - enum — Support for enumerations

留言