我正在尝试创造一个事件的臀部。因此,我定义了一个Event
由我的不同事件继承的类。
class Event:
def __init__(self, last_instant):
self.last_instant = last_instant # That's the prio criteria
class Event1(Event):
def __init__(self, last_instant, value):
Event.__init__(self, last_instant)
self.value = value
class Event2(Event):
...
该值last_instant
是优先条件,因此堆由定义如下的元组组成:
(last_instant, Event)
但是,我有放置在同一位置的事件,last_instant
因此heapq
在. 我还没有实现它,但即使我实现了,我也不知道如何实现,因为某些事件没有任何标准来区分应该首先从堆中弹出的事件。<
Event
如果相同,我如何实现一个顺序无关紧要的堆last_instant
?
另一方面,如果我在同一时刻(相同优先级)有相同类型(相同类别)的事件,我想将它们一起弹出并同时处理它们。
我可以看到实现这一点的最佳方法是同时弹出所有项目,将它们存储在列表中,然后按顺序处理它们。然后进入下一个瞬间。但是,它似乎与 heapq 不兼容。
谢谢!