枚举总结

枚举其实是一个类
1、定义一个枚举类,下面我们举一个例子

# 定义枚举类,继承于enum
from enum import Enum

class VIP(Enum):
    # 枚举里面的标识最好用大写
    YELLO = 1
    GREEN = 1
    BLACK = 3
    RED  = 4

print(VIP.BLACK)
# 注:枚举的意义重在于的是标签,而不是属性值

结果

VIP.BLACK

2、枚举类型、枚举名称于枚举值

# 枚举类型、枚举名称与枚举值
from enum import Enum

class VIP(Enum):
    YELLO = 1
    GREEN = 2
    BLACK = 3
    RED = 4

print(VIP.YELLO)
print(VIP.YELLO.name)  #获取标签名称
print(VIP.YELLO.value) #获取标签值
print(type(VIP.YELLO)) #这个类型是枚举类
print(type(VIP.YELLO.name)) #这个是一个字符串
print("#" * 50)


# 枚举也是可以遍历的
for v in VIP:

    print(v)
    print(v.name)
    print(v.value)
    print("*" * 50)

结果

VIP.YELLO
YELLO
1
<enum 'VIP'>
<class 'str'>
##################################################
VIP.YELLO
YELLO
1
**************************************************
VIP.GREEN
GREEN
2
**************************************************
VIP.BLACK
BLACK
3
**************************************************
VIP.RED
RED
4
**************************************************

3、枚举之间的比较运算

from enum import Enum

class VIP(Enum):
    YELLO = 1
    GREEN = 2
    BLACK = 3
    RED = 4


class VIP1(Enum):
    YELLO = 1
    GREEN = 2
    BLACK = 3
    RED = 4

restul = VIP.YELLO == VIP.GREEN #False
restul1 = VIP.YELLO == VIP.YELLO #True
restul2 = VIP.YELLO == 1 #False
restul3 = VIP.YELLO.value == 1 #True
restul4 = VIP.YELLO is VIP.YELLO #True
print("*" * 50)
restul5 = VIP.YELLO == VIP1.YELLO #False
restul6 = VIP.YELLO.value == VIP1.YELLO.value #True
print(restul6)

4、枚举注意事项

  1. 枚举不能有相同的标识,但是标签的值是可以相同的。
  2. 在枚举类中,标签值相同时,那么第二个标签将会成为别名。

  3. 在遍历的时候,打印标签的时候,是不会将别名打印出来。 要想将别名标签打印出来,则在遍历时,在枚举类名后面加members



from enum import Enum

class VIP(Enum):
    YELLO = 1
    # 别名
    YELLO_ALIAS = 1
    BLACK = 3
    RED = 4


for v in VIP.__members__:
    print(v)

结果

YELLO
YELLO_ALIAS
BLACK
RED
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值