千家信息网

Python中Enum使用的注意事项有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下Python中Enum使用的注意事项有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Enum 是个类
千家信息网最后更新 2026年11月03日Python中Enum使用的注意事项有哪些

小编给大家分享一下Python中Enum使用的注意事项有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Enum 是个类

所以

基本的类操作都可以用

也就是我们可以添加自己的方法

class Mood(Enum):    FUNKY = 1    HAPPY = 3    def describe(self):        # self is the member here        return self.name, self.value    def __str__(self):        return 'my custom str! {0}'.format(self.value)    @classmethod    def favorite_mood(cls):        # cls here is the enumeration        return cls.HAPPY
>>> Mood.favorite_mood()>>> Mood.HAPPY.describe()('HAPPY', 3)>>> str(Mood.FUNKY)'my custom str! 1'

Enum的每个类成员,都会自动被转换成当前类的一个实例

from enum import Enumclass Color(Enum):    RED = 1    GREEN = 2    BLUE = 3
>>> type(Color.RED)>>> isinstance(Color.GREEN, Color)True

这就意味着,我们不能用枚举成员直接当成它的value来用:

>>> Color.RED == 1False>>> Color.RED.value == 1False

枚举成员还有个name属性,跟它的变量名相同

>>> Color.RED.name == "RED"True

枚举类有个大坑:父类有成员的时候,就不能定义子类

所以,对于上面的Color类,如果还想定义一个子类,就会出错:

>>> class MoreColor(Color):...     PINK = 17...Traceback (most recent call last):...TypeError: MoreColor: cannot extend enumeration 'Color'

但父类没有枚举成员,仅仅定义了函数是可以的:

class Foo(Enum):    def some_behavior(self):        passclass Bar(Foo):    HAPPY = 1    SAD = 2

这显然大大限制了枚举类的扩展,一个不能访问成员的函数,用处也就不大了。

附Python Enum使用总结

1.枚举类不能用来实例化对象

2.访问枚举类中的某一项,直接使用类名访问加上要访问的项即可,比如 color.RED

3.枚举类里面定义的 Key = Value,在类外部不能修改 Value 值

4.枚举项可以用来比较,使用 ==,或者 is

5.枚举类中的 Key 不能相同,Value 可以相同,但是 Value 相同的各项 Key 都会当做别名

6.枚举类可以用 for 进行遍历,members.items() 可以遍历出含有别名的类

7.如果要枚举类中的 key 也不能相同,需要导入 unique 对枚举类进行装饰

以上是"Python中Enum使用的注意事项有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

相同 成员 篇文章 事项 注意事项 内容 函数 别名 子类 实例 不大 不怎么 也就是 变量 大坑 大部分 对象 属性 意味 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新华互联网科技学校 互联网与科技金融数据 科技与互联网发展 互联网科技缩写 长亮科技互联网金融 天扬科技互联网广告 盛创互联网科技有限公司 深圳卡尔迅互联网科技有限公司怎么样 广西拼得多互联网科技有限公司 银川新华互联网科技职业技术培训学校图片 重庆威客帮互联网科技 重庆互联网医院沙龙医盟信息科技 荆州市昕露互联网络科技有限公司 河南住房之家互联网科技 阿里互联网科技企业 互联网科技融合创新 济南小医互联网科技有限公司招聘 保山互联网科技靠谱吗 数字互联网科技有限公司 山东亿川互联网科技有限责任公司 云南咖啡 广东猪兼强互联网科技有限公司 互联网科技与金融科技 高科技与互联网 互联网科技英文 齐家互联网科技 鑫亿盛互联网科技 中国的互联网科技企业的崛起 成都互联网科技公司工作好不好 特约风豹互联网科技为什么扣费
0