Я пытаюсь добиться следующего поведения в "перечислении" python (пока безуспешно):
Учитывая класс перечисления
class MyEnum(enum.Enum):
A=1
B=2
C=3
Я хочу иметь элемент «Другой», чтобы MyEnum(5)
интерпретировался как «Другой», сохраняя при этом значение 5 или,
>>> str(MyEnum(5))
... "<MyEnum.Other: 5>"
Я думал сделать что-то вроде переопределения функции _missing_
, но я не знаю, как создать «пользовательский» экземпляр MyEnum
, не переписывая EnumMeta
.
Советы будут оценены.
EDIT: После некоторых комментариев, которые не могут точно понять мой вопрос, я не хочу иметь значение по умолчанию для перечисления, так как это значение по умолчанию не сохранит значение (которое я хочу сохранить). Я хочу только, чтобы значение было принято с именем по умолчанию.
Enum
. Что именно ты пытаешься сделать? - person Ethan Furman   schedule 09.12.2019_missing_
sunder в Python 3.4+, но, тем не менее, это хороший ответ. - person EZLearner   schedule 10.12.2019