如何让 Enum 中的元素默认评估为它们的值?

How can I have elements in an Enum evaluate as their value by default?

无论如何我可以有一个像下面这样的枚举

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

这样调用 Key.CUSTOMER_ID 默认情况下计算结果为 'c_id',而不需要调用 CUSTOMER_ID.value?

是否有任何我可以覆盖的方法来更改评估时返回的对象的内容?

当你想让Enum成员作为他们的值来求值时,你需要mixin他们的值类型:

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

并在使用中:

>>> Key.PHONE_NUMBER == 'phone'
True