Python 3.x 为枚举类python编写_str__方法

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”方法添加到此类,因为它不是类定义? 谢谢你的帮助。谢谢你的两个

我在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'])
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