각 모듈은 메시지 유형을 나타내는 비교적 큰 열거 형을 사용합니다. 클라이언트는 열거 형의 msg 유형과 연관된 정수 값을 포함하는 메시지를 수신합니다. 각 msg 유형에 대해 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)로되어있어 완벽한 후보가된다는 것을 이해합니다. 감사.
1. 배열 (튜플 또는 목록을 의미하는 것 같군요)은 함수를 포함 할 수 있습니다. 2.'dict'을 사용하십시오. –
@DavidHeffernan은 두 지점에서 정확히 맞습니다. 파이썬 배열은 함수 참조를 저장할 수 있으므로이 문제를 해결하기 위해'dict'을 사용해야합니다. – steveha
@DavidHeffernan 당신은 대답으로 대답해야한다고 생각합니다. –