1. 枚举 c1.py
from enum import Enum,unique
from enum import IntEnum
# 枚举 (常量大写)
# 优点:①不可变 ②防止相同标签
# 获取值的话需要再加一个 .value (枚举的值)
# 获取标签的话需要再加一个 .name (枚举的名字)
# 像VIP.GREEN这种直接取得的是 (枚举的类型)
# 枚举比较
# 在同一个枚举中,可以进行等值(==)比较,和身份比较(is)
# 同一个枚举中也不能做大小比较;枚举的value也不能和数值做比较
# 不同的枚举中不能作比较
# 注意点
# 别名(相当于有相同的值,但直接打印时会和正明同值)
# Enum 时,枚举可以是整型,如果引入为IntEnum时,就必须为整型
# 可以通过VIP(一个数值)的方式,将某个枚举中存在的值转为对应的枚举
# 建议在代码中使用名字,但存入数据库时用值,值占用存储空间小,代码里的名字和数据库中的一一对应
# 如果不想在遍历中存在别名(即有相同的值) 可以同装饰器来限制
class VIP(Enum):
YELLOW = 1
YELLOW_ALIAS = 1 #别名
GREEN = 2
BLACK = 3
RED = 4
STR = 'str'
# BLUE = 1
# RED = 5
# 整型限制
# class VIP1(IntEnum):
# RED = 4
# STR = 'str'
# 装饰器
# @unique
# class VIP2(Enum):
# YELLOW = 1
# YELLOW_