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.
12345a = 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
:
123456789101112131415161718class 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!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Pregunte me preguntas sobre este tema
Resumir este capítulo
Mostrar ejemplos del mundo real
Awesome!
Completion rate improved to 2.78
Métodos Mágicos de Comparación
Desliza para mostrar el menú
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.
12345a = 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
:
123456789101112131415161718class 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!