Python 枚舉類

def judge(color):
    if color == 1 or color == 2:
        print("司機違規")
    else:
        print("司機正常行駛")

使用枚舉類

from enum import Enum

class TrafficLight(Enum):
    RED = 1
    YELLOW = 2
    GREEN = 3
    
def judge(color):
    if color == TrafficLight.RED or color == TrafficLight.YELLOW:
        print("司機違規")
    else:
        print("司機正常行駛")

詳細說明

class TrafficLight(Enum):
    # 枚舉成員RED = 1
    # RED 名字
    # 1 是值
    RED = 1
    YELLOW = 2
    GREEN = 3
    
print(TrafficLight.RED)       # 這個是一個類型 <enum 'TrafficLight'>
print(TrafficLight.RED.name)  # 輸出RED
print(TrafficLight.RED.value) # 輸出1

print(TrafficLight(2))        # 打印的是 YELLOW

`如果還有一個BLACK = 1  那麼TrafficLight(1) 是RED`
`只會獲取第一個,BLACK 相當於RED 枚舉成員的別名`
`值value可以重複,但是鍵key不可以重複`
`使用@unique裝飾TrafficLight類,則值value也不能夠重複`


print(TrafficLight.RED == 1)       # False 不能犯這種錯誤
print(TrafficLight.RED.value == 1) # True  這纔是正確的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章