1

我想在我用 python 制作的类上使用堆队列( http://docs.python.org/2/library/heapq.html ):

class Dog:
  def __init__(self, name, age):
    self.name = name
    self.age = age

我想按年龄比较堆队列中的狗。我如何告诉 python 按年龄比较我的对象?换句话说,我可以以某种方式在 python 中编写一个“比较器”吗?

4

1 回答 1

6

您必须在__lt__您的类中添加一个方法:

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

如果您想安全,也可以添加一个__eq__方法并用functools.total_ordering添加其他比较运算符来装饰您的类。

于 2013-08-02T06:26:22.827 回答