1.1枚举也是一个类
from enum import Enum #引入枚举
class VIP(Enum): #枚举也是一个类
YELLOW=1 #重在标签不在数值
GREEN=2
BLACK=3
RED=4
枚举和普通类相比具有的优势:(1)枚举下的类型不能被随意更改(2)具有可以防止相同标签的功能
1.2枚举类型、枚举名称与枚举值
from enum import Enum #引入枚举
class VIP(Enum): #枚举也是一个类
YELLOW=1 #重在标签不在数值
GREEN=2
BLACK=3
RED=4
print(VIP.GREEN) #枚举类型
print(VIP.GREEN.name) #枚举的名字
print(VIP.GREEN.value) #枚举的值
for v in VIP:
print(v) #枚举可以遍历
#枚举的比较
r=VIP.GREEN==VIP.RED #可以做等值比较、身份比较,不能做大小比较
r1=VIP.GREEN is VIP.GREEN
print(r)
print(r1)
u=VIP.GREEN==2 #VIP.GREEN不是2
print(u)
1.3枚举注意事项
from enum import Enum #引入枚举
class VIP(Enum): #枚举也是一个类
YELLOW=1 #重在标签不在数值
YELLOW1=1 #YELLOW的 别名
GREEN=2
BLACK=3
RED=4
print(VIP.YELLOW1) #YELLOW1是YELLOW的别名,会打印出VIP.YELLOW
for v in VIP: #数值相等时不会被认为是另一个枚举,只会认为是前一个枚举的别名
print(v)
#把别名也加入遍历循环
for v in VIP.__members__.items(): #方法一
print(v)
for r in VIP.__members__: #方法二
print(r)
1.4枚举转换
from enum import Enum #引入枚举
class VIP(Enum): #枚举也是一个类
YELLOW=1 #重在标签不在数值
YELLOW1=1 #YELLOW的 别名
GREEN=2
BLACK=3
RED=4
a=2
print(VIP(a))
1.5枚举小结
from enum import IntEnum #IntEnum要求值必须是整数类型
class VIP(IntEnum):
YELLOW=1
GREEN=2
BLACK=3
RED=4