python事件触发机制,python自定义事件
为大蟒写了一个事件机制-小川-博客园
为大蟒写了一个事件机制本人新学大蟒不久,问了很多人都说大蟒没有事件机制。 偶觉得很麻烦,就自己写了一个。
要广播事件就必须继承事件调度员类,广播的事件必须是事件或者其子类。
密码
类别事件调度员(对象):
def__init__(self):
self.events={}
defaddEventListener(self,eventType,listenFunction):
ifnotself。事件。has _ key(事件类型):
self.events[eventType]=[]
事件列表=自身。事件[事件类型]
事件列表。追加(listenFunction)
defremoveEventListener(self,eventType,ListenFunction):
ifnotself。事件。has _ key(事件类型):
返回
事件列表=自身。事件[事件类型]
事件列表。移除(监听功能)
defdispatchEvent(self,Event):
ifnotself。事件。has _ key(事件。类型):
返回
事件列表=自身。事件[事件。类型]
forfunineventList:
乐趣()
def__del__(self):
keys=self.events.keys
forkeyinkeys:
eventList=self.events[key]
forfunineventList:
德尔芬
类别事件(对象):
def__init__(self,Type):
self.type=Type使用示例代码
classObj(EventDispatcher):
def__init__(self):
self.i=1
EventDispatcher__init__(自身)
德法迪(自己):
self.i=1 self.i
事件调度程序。派遣事件(自我、不良事件(‘iadd’))
defonIadd():
printo.i
o=Obj()
o.addEventListener(iadd ,onIadd)
哦。addi()#输出2
哦。addi()#输出3
o.removeEventListener(iadd ,onIadd)
o.addI()#nooutput
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。