python事件触发机制,python自定义事件

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: