2013-08-02 3 views
1

Я хочу использовать очередь кучи (http://docs.python.org/2/library/heapq.html) на классе я сделал в Python:Как создать очередь кучи объектов в python?

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

Я хочу, чтобы сравнить собака возраста в очереди кучи. Как сообщить python о сравнении моих объектов по возрасту? Другими словами, могу ли я как-то написать «компаратор» в python?

ответ

6

Вы должны добавить метод __lt__ к классу:

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

Если вы хотите быть в безопасности, добавьте метод __eq__, а также и украсить свой класс с functools.total_ordering чтобы добавить другие операторы сравнения, а также ,

Смежные вопросы