为 Enum 类 python 编写 __str__ 方法

Ami*_*ati 2 enums python-3.x

我在 python 中有一个使用字符串列表的枚举类:

from enum import Enum
myEnum = Enum('myEnum',['typeA',typeB','typeC'])
Run Code Online (Sandbox Code Playgroud)

我想将方法​​“ str ”添加到这个枚举类中:

def __str__(self):
    return self.name
Run Code Online (Sandbox Code Playgroud)

这样当我使用 str() 函数时,我只得到“typeX”部分,即没有类名的枚举部分。例如

print(str(myEnum.typeA)) # I want this to print "typeA" instead of "myEnum.typeA"
Run Code Online (Sandbox Code Playgroud)

我不知道如何将“ str ”方法添加到此类,因为它不是类定义?感谢您的帮助。

Eth*_*man 8

如果这是您经常做的事情,您可以创建自己的基本 Enum 类,然后在函数调用中使用它:

class MyBaseEnum(Enum):
    def __str__(self):
        return self.name

myEnum = MyBaseEnum('myEnum',['typeA','typeB','typeC'])
Run Code Online (Sandbox Code Playgroud)

并在使用中:

>>> print(myEnum.typeB)
typeB
Run Code Online (Sandbox Code Playgroud)