python中定义枚举
class WeekEnum(Enum): MONDAY = "周一" TUESDAY = "周二" WEDNESDAY = "周三" THURSDAY = "周四" FRIDAY = "周五" SATURDAY = "周六" SUNDAY = "周日" @classmethod def contains_value(cls, v): # 判断是否包含某个值 return v in cls._value2member_map_ # @unique # 枚举值不可重复 # class WeekUnique(Enum): # MONDAY = "周一" # TUESDAY = "周一" # 枚举值与MONDAY的值重复,报错 # WEDNESDAY = "周三" # THURSDAY = "周四" # FRIDAY = "周五" # SATURDAY = "周六" # SUNDAY = "周日" if __name__ == '__main__': print(WeekEnum.MONDAY) print(WeekEnum.MONDAY.value) print(WeekEnum.MONDAY.name) print("周一" == WeekEnum.MONDAY) print("周一" == WeekEnum.MONDAY.value) print(WeekEnum("周一")) for v in WeekEnum: print(v) print(WeekEnum.contains_value("周一"))
运行结果:
WeekEnum.MONDAY
周一
MONDAY
False
True
WeekEnum.MONDAY
WeekEnum.MONDAY
WeekEnum.TUESDAY
WeekEnum.WEDNESDAY
WeekEnum.THURSDAY
WeekEnum.FRIDAY
WeekEnum.SATURDAY
WeekEnum.SUNDAY
True
总结
1.枚举类不能用来实例化对象
2.访问枚举类中的某一项,直接使用类名访问加上要访问的项即可,比如 color.RED
3.枚举类里面定义的 Key = Value,在类外部不能修改 Value 值
4.枚举项可以用来比较,使用 ==,或者 is
5.枚举类中的 Key 不能相同,Value 可以相同,但是 Value 相同的各项 Key 都会当做别名
6.枚举类可以用 for 进行遍历,members.items() 可以遍历出含有别名的类
7.如果要枚举类中的 key 也不能相同,需要导入 unique 对枚举类进行装饰
————————————————
版权声明:本文为CSDN博主「全村之希望」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/spider_py/article/details/100532496
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构