Hola!.

Hay métodos especiales que a veces no vienen muy documentados o son difíciles de encontrar. ( Sobre todo encontrar un ejemplo)
Métodos como estos, podemos encontrarnos __cmp__ que ya no se usan en Python3 y se
debe usar __lt__ y __eq__

(Los métodos de arriba son para comparación).

En este enlace encontrareis información al respecto y ademas también podéis bajarlo en pdf.

http://www.rafekettler.com/magicmethods.html

No es un buen ejemplo de mucho uso con estos metodos, pero es funcional.

# Ejemplo con metodo lt, menor que, __gt__mayor que,__eq__igual que.

class numero(object):

def __init__(self,valor):
self.valor = valor

# Menor que
def __lt__(self,otro):
if self.valor < otro.valor:
return -1
# Mayor que
def __gt__(self,otro):
if self.valor > otro.valor:
return 1
# Igual que
def __eq__(self,otro):
if self.valor == otro.valor:
return 0


numero1 = numero(12)
numero2 = numero(4)

print (numero1 > numero2)
print (numero1 < numero2)
print (numero1 == numero2)


Al usar los métodos y la comparación no se cumple. Devuelve None.

Saludos