【发布时间】:2018-10-11 17:14:18
【问题描述】:
目前,我有一个表示名称/数字映射的枚举。然而,每个 EventType 还具有额外的“相关属性”(例如状态代码和消息类型)。
class EventType(Enum):
CANCELLED = 0
ONTIME = 1
DELAYED = 2
def get_status(self):
if self == EventType.CANCELLED:
return "statuscode1"
elif self == EventType.DELAYED:
return "statuscode2"
else:
return "statuscode3"
def get_message_type(self):
if self == EventType.CANCELLED:
return "messagetype1"
elif self == EventType.DELAYED:
return "messagetype2"
else:
return "messagetype3"
除了创建上面的方法和大量的 if 链检查自身之外,有没有更简洁的重构方法来返回状态代码和消息类型?几乎就像CANCELLED = (0, statuscode1, messagetype1).. 我怎样才能在枚举中表示这个概念?枚举甚至是正确的方法吗?
【问题讨论】:
-
怎么是重复的问题?我已经有代表 OP 中的枚举的代码...
-
我认为它是重复的,因为如果您看到该问题的一些热门答案,您可以找到在 python 中实现枚举的方法。
-
@MrAlihoseiny:OP 不是在问如何实现枚举类型,而是如何使用现有的
Enum类型。跨度>
标签: python python-3.x enums