Позволяет реализовать сравнение экземпляров пользовательских типов.
Прототип
object.__cmp__(self, other)
Параметры
self -- Ссылка на экземпляр.
other -- Объект с которым следует произвести сравнение (справа от оператора сравнения).
Результат
int
Описание
Вызывается операторами сравнения в случае, если методы «богатого сравнения» не определены.

Должен возвращать целое:
отрицательное, если self < other;
нуль, если self == other;
положительноеa, если self > other.

    class Moon(object):

r = 1737.10

def __cmp__(self, other):
return self.r - other.r


class Earth(object):

r = 6371.0

def __cmp__(self, other):
return self.r - other.r


my_moon = Moon()
my_moon_dub = Moon()
my_earth = Earth()

# Используют Moon.__cmp__
my_moon == my_earth # False
my_moon != my_earth # True
my_moon > my_earth # False
my_moon < my_earth # True
my_moon >= my_earth # False
my_moon <= my_earth # True
my_moon == my_moon_dub # True

Если не определены, ни этот метод, ни __eq__(), ни __ne__(), экземпляры сравниваются по их идентификаторам («адресам»).

Для получения дополнительной важной информации об использовании «богатого сравнения» при создании объектов, поддерживающих хеширование, которые могут использоваться в качестве ключей в словарях смотрите object.__hash__().

+py1.5 Устранено ограничение, когда исключения из метода не поднимались.

Нет обсуждений для отображения.
Если у вас есть, что сказать, можете представиться и исправить ситуацию.