Contenido del Curso
Programación Orientada a Objetos en Python a Fondo
Programación Orientada a Objetos en Python a Fondo
Métodos Mágicos de Comparación
De forma similar a los métodos mágicos matemáticos, aquí tomamos self
y other
como argumentos y comparamos sus atributos deseados. Estos métodos mágicos siempre deben devolver True
o False
.
Método Mágico | Operación |
---|---|
__eq__(self, other) | == |
__gt__(self, other) | > |
__ge__(self, other) >=` | |
__lt__(self, other) | < |
__le__(self, other) | <= |
__ne__(self, other) !=` |
Nota
Para entender la nomenclatura de estos métodos, mira algunos ejemplos:
eq
eseq
ual.gt
esg
reatert
han.le
esl
ess oe
qual.ne
isn
ote
qual.
a = 12.3 b = 5.7 print("a >= b is", a >= b) print("a.__ge__(b) is", a.__ge__(b))
Mira el ejemplo de la clase Road
:
class Road: def __init__(self, length): self.length = length def __eq__(self, other): if isinstance(other, Road): return self.length == other.length # compare with road return self.length == other # compare with number road_1 = Road(20) road_2 = Road(30) road_3 = Road(20) print(road_1 == road_2) print(road_1 == road_3) print(road_1 == 20) print(road_1 == 20.0) print(road_1 == 1412)
Nota
Para optimizar el código, puede utilizar métodos de comparación existentes. Por ejemplo, si ha implementado el método
__lt__()
(<
), al implementar el método__ge__()
(>=
), puede utilizarreturn not (instance1 < instance2)
que devolverá el resultado opuesto al operador<
ya implementado.
¡Gracias por tus comentarios!