Как я могу заставить элементы в Enum оценивать их значение по умолчанию? - PullRequest
0 голосов
/ 06 августа 2020

Есть ли у меня Enum, как показано ниже

class Key(Enum):
    CUSTOMER_ID = 'c_id'
    PHONE_NUMBER = 'phone'

, так что вызов Key.CUSTOMER_ID по умолчанию оценивается как 'c_id' без необходимости вызова CUSTOMER_ID.value?

Есть ли какой-либо метод, который я могу переопределить, который изменяет то, что объект, возвращаемый при оценке, есть?

1 Ответ

1 голос
/ 06 августа 2020

Если вы хотите, чтобы члены Enum оценивали свои значения, вам нужно смешать их тип значения:

class Key(str, Enum):             # note that `str` is before `Enum`
    CUSTOMER_ID = 'c_id'
    PHONE_NUMBER = 'phone'

и использовать:

>>> Key.PHONE_NUMBER == 'phone'
True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...