Python: compare methods

Para obtener el comportamiento de comparación (== o != / <>) se redefinen los métodos __eq__(correspondiente al operador ==) y __ne__ (correspondiente a != o <>).

def __eq__ (self, otro):
    """ Devuelve si dos puntos son iguales. """
    return self.x == otro.x and self.y == otro.y
 
def __ne__(self, otro):
    """ Devuelve si dos puntos son distintos. """
    return not self == otro

Una vez agregados estos métodos ya se puede comparar los puntos por su igualdad o desigualdad:

>>> p = Punto(3,4)
>>> q = Punto(3,4)
>>> p == q
True
>>> p != q
False
>>> r = Punto(2,3)
>>> p == r
False
>>> p != r
True

 

SOURCEhttp://librosweb.es/libro/algoritmos_python/capitulo_14/creando_clases_mas_complejas.html

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s