简单说pyglet.event

emitter,就是pyglet.event.EventDispatcher的子类, 负责发出事件的消息,并且规定了响应消息的函数名。

class Consumer(pyglet.event.EventDispatcher):
def call(self):
self.dispatch_event('response')
Consumer.register_event_type('response')

call方法就是在发送一个叫'response'的事件

listener, 就是一个实现了事件响应函数的类的对象,

class TaxiDriver(object):
def __init__(self, DidiApp):
DidiApp.push_handlers(self)
def response(self):
print("I'm coming soon!")

需要将自己传递给emittor, 并且实现上面的response方法

运行:

c = Consumer()
t = TaxiDriver(c)
c.call()

当c调用call方法的时候,就发出了"response"事件消息,然后遍历执行handlers中的response方法

上一篇:【AGC030D】Inversion Sum DP


下一篇:C#-常用对象-思维导图