Позволяет реализовать сравнение экземпляров пользовательских типов.
object.__cmp__(self, other)
-> int
self -- Ссылка на экземпляр.

other -- Объект с которым следует произвести сравнение (справа от оператора сравнения).

На заметку
Вызывается операторами сравнения в случае, если методы «богатого» сравнения не определены.

Должен возвращать целое:

self < otherотрицательное
self == otherнуль
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 Устранено ограничение, когда исключения из метода не поднимались.
Синонимы поиска: object.__cmp__, object, __cmp__
На заметку
У нас есть новостная группа в Telegram. Там же можно обсудить интересующие вопросы. Ссылка в самом низу страницы.