以下代码创建了三个“常量”,可以在每个常量之前不使用枚举的类名来使用这些常量。有没有一种方法可以对枚举的所有成员执行此操作,而无需为每个成员添加显式代码行,如此处所示?
import enum
class Test(enum.Enum):
ONE = 1
TWO = 2
THREE = 3
ONE = Test.ONE
TWO = Test.TWO
THREE = Test.THREE
基本上,对于同时拥有 20-30 名成员的枚举,是否有一种有效的方法?
我不建议这样做,因为枚举的名称表明了归属。例如,从以下代码中可以直观地看出,一月是工作月:
class WorkingMonth(enum.Enum):
JANUARY = "january"
FEBRUARY = "february"
...
# WorkingMonth.JANUARY
在这种情况下,省略符号是没有意义的。此外,如果您有名称不同但值交叉的枚举,这会增加潜在错误的可能性:
class ServerFormats(enum.Enum):
MP3 = "mp3"
WAV = "wav"
class ClientFormats(enum.Enum):
MP3 = "mp3"
FLAC = "flac"
# ServerFormats.MP3 and ClientFormats.MP3 will conflict
总而言之,我想说这是相当糟糕的做法。