本篇文章给大家带来的内容是关于python枚举类型是什么?python枚举类型的简单介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
一:枚举类型的定义
二:枚举类和普通类的区别
1:值不可变
2:具有防止相同标签得功能,不同标签的值可以相同!
三:枚举类型、枚举值、枚举名称
1:VIP.YELLOW.Value 获得标签的值
2:VIP.BLACK.name 获取标签名称
3:枚举里面的部分为枚举类型!
四:枚举之间的比较
1: 支持等值比较和is, 不支持大小比较
2: 不同枚举类之间的比较
五:枚举的注意事项
不同标签的值相同的时候,第二种会被当做一种别名,调用时会被覆盖!
遍历的时候不会被打印出来,解决方法是:for v in VIP.__members__.items():
print(v)
六:枚举转换
从数据库中去除某一个数值对应的值(a = 1),根据a的值匹配枚举的类型a = 1
print(VIP(a))
七:其他
1:IntEnum类型说明:枚举的都是int类型的!
2:限制枚举类型的值不能一样# ----------------------------------------------#
# 定义一个枚举类型
# ----------------------------------------------#
from enum import Enum
from enum import IntEnum, unique
class VIP(Enum):
YELLOW = 1
GREEN = 2
BLACK = 3
RED = 4
class 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 Enum
print("name = ", VIP.BLACK.name) # get value of Name,the type of name is str
print(VIP.BLACK) # 名字为枚举类型
print(VIP['BLACK'])
# 枚举可以被遍历
for v in VIP:
print(v)
# ----------------------------------------------#
# 枚举之间的比较,支持等值比较,不支持大小比较
# ----------------------------------------------#
result1 = VIP.GREEN == VIP.BLACK
result2 = VIP.GREEN.value == 2 # 注意这里的结果
print(result1, result2)
class VIP1(Enum):
YELLOW = 1
GREEN = 2
BLACK = 3
RED = 4
WRITE = 5
result3 = VIP.GREEN == VIP1.GREEN
print(result3)
# ----------------------------------------------#
# 枚举注意事项
# ----------------------------------------------#
class VIP2(Enum):
YELLOW = 1
GREEN = 1 # 别名
BLACK = 3
RED = 4
for v in VIP2:
print(v)
for v in VIP2.__members__.items():
print(v)
for v in VIP2.__members__:
print(v)
# ----------------------------------------------#
# 枚举转换
# ----------------------------------------------#
a = 1
print(VIP(a)) # 可以看做是类型转换
# ----------------------------------------------#
# 枚举补充
# ----------------------------------------------#
# 1:IntEnum类型说明
class VIP3(Enum):
YELLOW = 1
GREEN = "str" # 别名
BLACK = 3
RED = 4
class VIP4(IntEnum):
YELLOW = 1
# GREEN = 'str' # 字符串报错
BLACK = 3
RED = 4
# 2:限制枚举类型的值不能一样
@unique
class VIP6(Enum):
YELLOW = 1
GREEN = 1 # 当值相同的时候会报错!
BLACK = 3
RED = 4