基本事件循环的Python [复制](Basic Event Loop in Python [dup

2019-08-01 22:09发布

可能重复:
为Python 3事件循环实现?

我想实现在python2.7事件循环。 我想能够触发基于时间的事件和正在发生的另一个动作的结果的事件。

我明白我可以利用select做一些类似的。

这是正确的方式前进或者是有哪些我缺少一个更好的办法?

Answer 1:

事件循环是一个循环处理/涉及的事件。

一个事件是指发生在一些代码的部分可能有兴趣在系统中。

在开始的时候,所有的组件注册事件,之后,init事件触发:

我只是在这里提供的原始代码:

listeners = [component1, component2, component3]
eventqueue.add(InitEvent())
while True:
    event = eventqueue.pop()
    for listener in listeners:
        listener.handle_event(event)

如何在eventqueue实现,什么Event()类层次看起来就留给读者自己练习。 照顾有关使用threading.(R)Lock小号等为.pop()方法。

此外,你可以有各种事件类型的单独的侦听器列表。 事件可能因此被“炒鱿鱼”的只是调用它(或其.fire()方法),并有一个机制来识别,以告知他们有关该事件的所有自己和父母的听众。

在任何情况下,听众则可以决定自己做什么用的,并根据事件。



文章来源: Basic Event Loop in Python [duplicate]