枚举 Enum from enum import Enum class VIP(Enum): #不允许有相同标签,不能更改 YELLOW = 1 #枚举的值要是相同,相同值的那个标签就是它的别名 GREEN = 2 #可以是其他数据类型 BLACK = 3 RED = 4 for v in VIP: print(v) # """VIP.YELLOW VIP.GREEN VIP.BLACK VIP.RED""" # print(VIP.YELLOW) #VIP.YELLOW # print(VIP.YELLOW.value) # 1 访问值 # print(VIP.YELLOW.name) # YELLOW 获取标签名 # print(type(VIP.YELLOW)) #<enum 'VIP'> # print(type(VIP.YELLOW.name)) #<class 'str'> """ 普通类和字典:可变,没有防止相同标签功能 """ python里的枚举不能做大小比较,能做 等值 比较 == 和身份比较 from enum import Enum class VIP(Enum): #不允许有相同标签,不能更改 YELLOW = 1 YELLOW_ALIAS = 1 #值相同相当于别名 BLACK = 3 RED = 4 for v in VIP: print(v) # 这样别名没有打印出来 """VIP.YELLOW VIP.BLACK VIP.RED""" for v in VIP.__members__.items(): print(v) """('YELLOW', <VIP.YELLOW: 1>) ('YELLOW_ALIAS', <VIP.YELLOW: 1>) ('BLACK', <VIP.BLACK: 3>) ('RED', <VIP.RED: 4>) """ for v in VIP.__members__: print(v) """YELLOW YELLOW_ALIAS BLACK RED""" from enum import IntEnum,unique @unique class VIP(IntEnum): #IntEnum 不允许是字符串类型 YELLOW = 1 #加上unique 就不能有相同值 #Green = 1 BLACK = 3 RED = 4