Python 3.x 为枚举类python编写_str__方法
我在python中有一个enum类,它使用字符串列表:Python 3.x 为枚举类python编写_str__方法,python-3.x,enums,Python 3.x,Enums,我在python中有一个enum类,它使用字符串列表: from enum import Enum myEnum = Enum('myEnum',['typeA',typeB','typeC']) 我想将方法“str”添加到此枚举类: def __str__(self): return self.name 因此,当我使用str()函数时,我只得到“typeX”部分,即没有类名的枚举部分。 e、 g 我不知道如何将“str”方法添加到此类,因为它不是类定义? 谢谢你的帮助。谢谢你的两个
from enum import Enum
myEnum = Enum('myEnum',['typeA',typeB','typeC'])
我想将方法“str”添加到此枚举类:
def __str__(self):
return self.name
因此,当我使用str()函数时,我只得到“typeX”部分,即没有类名的枚举部分。
e、 g
我不知道如何将“str”方法添加到此类,因为它不是类定义?
谢谢你的帮助。谢谢你的两个答案。 我使用它如下,它的工作:
from enum import Enum
myEnum = Enum('myEnum',['typeA','typeB','typeC'])
def __str__(self):
return self.name
myEnum.__str__ = __str__
st = str(myEnum.typeA)
print(st)
它打印的是“typeA”,而不是我需要的“myEnum.typeA” 如果这是您经常做的事情,您可以创建自己的基本枚举类,然后在函数调用中使用它:
class MyBaseEnum(Enum):
def __str__(self):
return self.name
myEnum = MyBaseEnum('myEnum',['typeA','typeB','typeC'])
在使用中:
>>> print(myEnum.typeB)
typeB
我们可以子类化
Enum
并重写\uuuuu str\uuuu
方法。您可以使用将函数分配给myEnum.\uuuuu str\uuuu=where
>>> print(myEnum.typeB)
typeB