Я хотел перегрузить метод getitem Enum в Python, чтобы вернуть первый элемент кортежа вместо всего содержимого значения. Для этого я попытался создать Enum на основе EnumMeta с переопределенным методом, как показано ниже, а затем наследовать конечный класс Enum, как показано ниже:
from enum import Enum
from enum import EnumMeta
from datetime import date
class CommandMeta (EnumMeta):
SUCCESS = 0, "Exited successsssfully."
def __getitem__(cls, value, *args, **kwargs):
value = value[0]
return super().__getitem__(value, *args, **kwargs)
class Command (Enum, metaclass=CommandMeta):
SUCCESS = 0, "Exited successsssfully."
Ожидаемый результат было:
print(Command.SUCCESS.value)
0
И вместо этого он все тот же:
print(Command.SUCCESS.value)
(0, 'Exited successsssfully.')
Как мне удалось правильно перегрузить метод?