Эти методы определяют поведение объектов при сравнении. Они называются "богатыми методами сравнения" (rich comparison methods).
__eq__(self, other): Определяет поведение оператора == (равенство). Возвращает True, если объекты равны, иначе False.__ne__(self, other): Определяет поведение оператора != (неравенство). По умолчанию, если определен __eq__, то __ne__ является его логическим отрицанием.__lt__(self, other): Определяет поведение оператора < (меньше). Возвращает True, если self меньше other, иначе False.__le__(self, other): Определяет поведение оператора <= (меньше или равно). По умолчанию, если определены __lt__ или __eq__, может быть автоматически вычислен.__gt__(self, other): Определяет поведение оператора > (больше). Возвращает True, если self больше other, иначе False.__ge__(self, other): Определяет поведение оператора >= (больше или равно). По умолчанию, если определены __gt__ или __eq__, может быть автоматически вычислен.Определение этих методов в пользовательских классах позволяет сравнивать экземпляры класса с помощью стандартных операторов сравнения.
Пример использования:
python
Рекомендуется определять __eq__ и, если нужно упорядоченное сравнение, __lt__. Остальные методы (__ne__, __le__, __gt__, __ge__) могут быть автоматически добавлены с помощью декоратора @functools.total_ordering из модуля functools, при условии, что определены __eq__ и хотя бы один из <, <=, >, >=.
python