我想在我在python中创建的类上使用堆队列(http://docs.python.org/2/library/heapq.html):
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
我想在堆队列中按年龄比较狗。我怎么告诉python按年龄比较我的对象?换句话说,我可以在python中以某种方式编写“比较器”吗?
答案 0 :(得分:6)
您必须在班级中添加__lt__
方法:
def __lt__(self, other):
return self.age < other.age
如果您想要安全,请添加__eq__
方法并使用functools.total_ordering
修饰您的课程,以添加其他比较运算符。