美文网首页
Python学习笔记九(枚举)

Python学习笔记九(枚举)

作者: stoolman | 来源:发表于2018-03-07 15:13 被阅读34次

枚举

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

枚举没有实例化意义,单例模式(设计模式)

相关文章

网友评论

      本文标题:Python学习笔记九(枚举)

      本文链接:https://www.haomeiwen.com/subject/shbhfftx.html