Кажется, что достаточно унаследовать от str
класса одновременно с Enum
:
class MyEnum(str, Enum):
state1='state1'
state2 = 'state2'
Сложность состоит в том, что порядок классов вцепочка наследования важна , как это:
class MyEnum(Enum, str):
state1='state1'
state2 = 'state2'
throws:
TypeError: new enumerations should be created as `EnumName([mixin_type, ...] [data_type,] enum_type)`
При правильном классе следующие операции на MyEnum
в порядке:
print('This is the state value: ' + state)
В качестве примечания, похоже, что специальный прием наследования не требуется для форматированных строк , которые работают даже для Enum
только наследования:
msg = f'This is the state value: {state}' # works without inheriting from str