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  这才是正确的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章