PHP前端开发

python枚举类型是什么?

百变鹏仔 2个月前 (02-06) #Python
文章标签 类型

本篇文章给大家带来的内容是关于python枚举类型是什么?python枚举类型的简单介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一:枚举类型的定义
二:枚举类和普通类的区别
1:值不可变
2:具有防止相同标签得功能,不同标签的值可以相同!

三:枚举类型、枚举值、枚举名称
1:VIP.YELLOW.Value    获得标签的值
2:VIP.BLACK.name      获取标签名称
3:枚举里面的部分为枚举类型!

四:枚举之间的比较
1: 支持等值比较和is, 不支持大小比较
2: 不同枚举类之间的比较

五:枚举的注意事项
   不同标签的值相同的时候,第二种会被当做一种别名,调用时会被覆盖!
   遍历的时候不会被打印出来,解决方法是:

立即学习“Python免费学习笔记(深入)”;

for v in VIP.__members__.items():        print(v)

六:枚举转换
   从数据库中去除某一个数值对应的值(a = 1),根据a的值匹配枚举的类型

a = 1print(VIP(a))

七:其他
1:IntEnum类型说明:枚举的都是int类型的!
2:限制枚举类型的值不能一样

# ----------------------------------------------## 定义一个枚举类型# ----------------------------------------------#from enum import Enumfrom enum import IntEnum, uniqueclass VIP(Enum):    YELLOW = 1    GREEN = 2    BLACK = 3    RED = 4class Common:    YELLOW = 2# 注意这里显示的是VIP.Black而不是3,枚举的意义重在标签而不是标签的值print(VIP.BLACK)# ----------------------------------------------------## 枚举类和普通类的区别# 字典和普通类封装数据:   1:可变    2:没有防止相同标签得功能# ----------------------------------------------------## VIP.GREEN = 6     # 当改变值得时候报错Common.YELLOW = 9   # 改变类变量的值print(Common.YELLOW)x = Common()           # 类的实例化print(x.YELLOW)# ----------------------------------------------## 枚举类型、枚举值、枚举名称# ----------------------------------------------#print("Black = ", VIP.BLACK.value)  # get value of Enumprint("name = ", VIP.BLACK.name)  # get value of Name,the type of name is strprint(VIP.BLACK)        # 名字为枚举类型print(VIP['BLACK'])# 枚举可以被遍历for v in VIP:    print(v)# ----------------------------------------------## 枚举之间的比较,支持等值比较,不支持大小比较# ----------------------------------------------#result1 = VIP.GREEN == VIP.BLACKresult2 = VIP.GREEN.value == 2    # 注意这里的结果print(result1, result2)class VIP1(Enum):    YELLOW = 1    GREEN = 2    BLACK = 3    RED = 4    WRITE = 5result3 = VIP.GREEN == VIP1.GREENprint(result3)# ----------------------------------------------## 枚举注意事项# ----------------------------------------------#class VIP2(Enum):    YELLOW = 1    GREEN = 1   # 别名    BLACK = 3    RED = 4for v in VIP2:    print(v)for v in VIP2.__members__.items():    print(v)for v in VIP2.__members__:    print(v)# ----------------------------------------------## 枚举转换# ----------------------------------------------#a = 1print(VIP(a))       # 可以看做是类型转换# ----------------------------------------------## 枚举补充# ----------------------------------------------## 1:IntEnum类型说明class VIP3(Enum):    YELLOW = 1    GREEN = "str"   # 别名    BLACK = 3    RED = 4class VIP4(IntEnum):    YELLOW = 1    # GREEN = 'str'   # 字符串报错    BLACK = 3    RED = 4# 2:限制枚举类型的值不能一样@uniqueclass VIP6(Enum):    YELLOW = 1    GREEN = 1   # 当值相同的时候会报错!    BLACK = 3    RED = 4