枚举
from enum import Enum
class VIP(Enum):
YELLOW = 1
GREEN = 2
BLACK =3
reversed = 4
print(VIP.YELLOW)
python 3中新增
相比字典以及类变量,枚举用来抽象类型具有优势有1、值不可变;2、防止相同值
获取枚举类型属性及值
#枚举的类型,枚举的名字,枚举的值,类型不同,可以通过type()查看
print(VIP.YELLOW.value)
print(VIP.YELLOW.name)
print(VIP.YELLOW.value)
#枚举遍历
for v in VIP:
print(v)
枚举之间的比较
可以进行身份比较或等值比较,不能进行大小比较
#等值比较
result = VIP.YELLOW == VIP.YELLOW
#身份比较
a = VIP.BLACK
r = a is VIP.BLACK
print(r)
注意事项:
from enum import Enum
class VIP(Enum):
YELLOW = 1
YELLOW_ALIAs = 1
GREEN = 2
BLACK =3
reversed = 4
for v in VIP.__members__:
print(v)
for v in VIP.__members__.items():
print(v)
枚举类型,value可以相同,相同的值的name为别名
遍历的时候,直接遍历不会遍历别名
通过value访问枚举
a = 1
print(VIP(a))
小结
可以通过继承IntEnum来限制value为int
unique装饰器可以显示别名,即不允许value相等
from enum import IntEnum,unique
@unique
class VIP(IntEnum)
YELLOW = 1
枚举没有实例化意义,单例模式(设计模式)
网友评论