我有一个相对较大的枚举,其中每个成员代表一个消息类型。客户端将收到一条消息,其中包含与枚举中的 msg 类型关联的整数值。对于每种味精类型,都会有一个单独的函数回调来处理味精。
我想通过使用枚举值映射到回调索引的稀疏数组(或向量)来尽可能快地查找和调度回调。在给定数组不能保存函数类型的 Python 中,这可能吗?
#pseudo code for 'enum'
class MsgType(object):
LOGIN, LOGOUT, HEARTBEAT, ... = range(n)
#handler class
class Handler(object):
def handleMsg(self, msg):
#dispatch msg to specific handler
def __onLogin(self, msg):
#handle login
def __onLogout(self, msg):
#handle logout
更新: 我的术语不清楚。我现在理解 Python 字典查找的复杂度为 O(1),这使它们成为完美的候选者。谢谢。