在 Python 中,如何使优先级队列弹出一个对象的多个值?

In Python, how do I make a Priority Queue pop off multiple values of an object?

我有一个 class 对象的优先级队列。在我的 class 定义中,我有:

def __lt__(self, other):
    return self.fn < other.fn

如果有多个对象具有相同的 fn 值,我该如何合并一个 'tie breaker'?换句话说,像这样:

def __lt__(self, other):
    return self.fn < other.fn and self.gn < other.gn

您可以添加显式检查两个 fn 字段之间的相等性,仅检查 gn 它们是否相等:

def __lt__(self, other):
    if self.fn != other.fn:
        return self.fn < other.fn
    return self.gn < other.gn