在没有类名的 Python 中获取枚举名

Nic*_* W. 7 enums python-3.x

我想创建自己的枚举。这将有名称但没有值。调用此枚举时,它应始终返回名称。

from enum import Enum

class myEnum(Enum):
    def __repr__(self):
        return self.name

my_enum = myEnum('enum', ['a', 'b'])
Run Code Online (Sandbox Code Playgroud)

和:

print(my_enum.a) 
Run Code Online (Sandbox Code Playgroud)

它会返回一个。没关系。

但是在课堂上使用它:

class T():
    def do_something(self):
        print(my_enum.a)
Run Code Online (Sandbox Code Playgroud)

和:

T().do_something()
Run Code Online (Sandbox Code Playgroud)

将返回 enum.a

目标是这将永远返回一个。

Mar*_*rco 13

如果在调用此枚举时它应始终返回名称意味着何时string需要 a 则您可以将此方法添加到myEnum类中:

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