枚举

1、使用

  1. 先导入enum模块的Enum类并继承
  2. 变量名推荐大写
  3. 枚举可以遍历

实例:

from enum import Enum

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

VIP.YELLOW = 6		# 报错
# 枚举类型、枚举的名字、枚举的值
print(VIP.YELLOW)			# VIP.YELLOW  类型:enum
print(VIP.YELLOW.value)		# 1
print(VIP.YELLOW.name)		# YELLOW	类型:str
print(VIP['YELLOW'])		# VIP.YELLOW  类型:enum

for v in VIP:
    print(v)
VIP.YELLOW
VIP.GREEN
VIP.BLACK
VIP.RED

特点不可变、避免防止相同值重复

2、比较运算

  1. 只能是"==" 和 “is” 比较
  2. 只能是同一个枚举类下的比较

3、注意事项

  1. 枚举的标签名不能相同,否则会报错
  2. 枚举的标签名不相同,但是值相同的话,不会报错,但会认为后面的是前面的别名,打印不出后面重复的枚举,正常遍历也遍历不出,除非调用一个方法
    实例:
class VIP1(Enum):
    YELLOW = 1
    GREEN = 1
    BLACK = 3
    RED = 4

print(VIP1.GREEN)		# VIP1.YELLOW

for x in VIP1.__members__:
    print(x)		# 这样可以打印出所有的 __members__后面跟.items(), 则打印出详细信息(元祖类型)

4、枚举转换

数据库存储时推荐存储数值,代码中展示推荐使用枚举类型
实例:

from enum import Enum

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

a = 1
print(VIP(a))		# VIP.YELLOW

5、扩展

  1. IntEnum类固定枚举数值只能是int类型,否则会报错(可以是数字的str)
  2. unique类固定枚举数值不能重复,否则会报错
    使用:
from enum import IntEnum, unique

@unique
class VIP(IntEnum):
    YELLOW = 1
    GREEN = 2
    BLACK = 3
    RED = 4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值