Какие методы сравнения достаточно перегрузить в python чтобы можно было сортировать объекты собственного класса

у меня есть пользовательский класс и его нужно сортировать по специфичному признаку (от признака можно абстрагироваться), какие методы сравнения мне достаточно перегрузить чтобы сортировка работала правильно? потому что мне кажется что все методы перегружать избыточно


Ответы (1 шт):

Автор решения: Danis

Нужно переопредилить метод __lt__ либо __gt__

class my1:
    def __lt__(self, other):
        print("__lt__")
        return True

class my2:
    def __gt__(self, other):
        print("__gt__")
        return True

sorted([my1(), my1()])
sorted([my2(), my2()])

Если переопредилить оба то будет использовать только __lt__

class my:
    def __lt__(self, other):
        print("__lt__")
        return True

    def __gt__(self, other):
        print("__gt__")
        return True

sorted([my(), my()])
→ Ссылка