def __init__(self, event_funcs):
super(_WrappedFunctionListener, self).__init__()
if len(event_funcs) % 2 != 0:
raise InvalidArgumentException((
u"event_funcs??????"
u"???(???1, ??1, ???2, ??2, ...)???"))
for event_name, func in itertools.izip(
event_funcs[::2], event_funcs[1::2]):
if not event_name.startswith("on_"):
event_name = "on_" + event_name
if event_name not in AbstractListener.EVENTS:
raise InvalidArgumentException(u"??????{}".format(event_name))
def event_handler_factory(func):
def event_handler(ctx, f=func):
return f(ctx)
return event_handler
setattr(self, event_name, event_handler_factory(func))
评论列表
文章目录