Возврат членов по умолчанию, когда член Enum не существуетPython

Программы на Python
Ответить
Anonymous
 Возврат членов по умолчанию, когда член Enum не существует

Сообщение Anonymous »

У меня есть Enum, в котором я хотел бы, чтобы элемент по умолчанию возвращался, если внутри него не существует члена. Например:

Код: Выделить всё

class MyEnum(enum.Enum):
A = 12
B = 24
CUSTOM = 1

print(MyEnum.UNKNOWN) # Should print MyEnum.CUSTOM
Я знаю, что могу использовать такой метакласс:

Код: Выделить всё

class MyMeta(enum.EnumMeta):
def __getitem__(cls, name):
try:
return super().__getitem__(name)
except KeyError as error:
return cls.CUSTOM

class MyEnum(enum.Enum,metaclass=MyMeta):
...
Но, похоже, это работает только в том случае, если я получаю доступ к Enum с помощью MyEnum['UNKNOWN']. Есть ли способ, охватывающий оба метода доступа к членам перечисления, когда этот член не существует?

Подробнее здесь: https://stackoverflow.com/questions/723 ... -not-exist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»