在Python中为枚举类Enum添加成员,可以为枚举添加别名、中文描述等信息,方便信息打印和追加信息。在网上查了几篇文章,首先发现百度AI给的方法是比较老的,对于新版本的Python来说是错误的。
还有的文章是推荐用aenum,需要额外下载感觉也不太好。回到官方文档发现Python版本升级后,通过__new__魔法方法还是可以追加成员的,下面给出本文修改后的示例代码:
from enum import IntEnum
class Color(IntEnum):
RED = 1, "Red"
GREEN = 2, "Green"
BLUE = 3, "Blue"
def __new__(cls, value, text):
member = int.__new__(cls, value) # 创建枚举成员
member._value_ = value
member._text = text # 添加文本属性
return member
@property
def text(self):
return self._text # 获取文本属性
# 使用枚举
print(Color.RED.text) # 输出: Red
print(Color.GREEN.text) # 输出: Green
print(Color.BLUE.text) # 输出: Blue
结论是还是得看官方文档啊。。。