Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Métodos Mágicos de Comparación | Métodos Mágicos
Programación Orientada a Objetos en Python a Fondo
course content

Contenido del Curso

Programación Orientada a Objetos en Python a Fondo

Programación Orientada a Objetos en Python a Fondo

1. Conceptos de POO
2. Herencia
3. Encapsulamiento
4. Polimorfismo y Abstracción
5. Métodos Mágicos

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ágicoOperació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 es equal.
  • gt es greater than.
  • le es less o equal.
  • ne is not equal.
12345
a = 12.3 b = 5.7 print("a >= b is", a >= b) print("a.__ge__(b) is", a.__ge__(b))
copy

Mira el ejemplo de la clase Road:

123456789101112131415161718
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)
copy

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 utilizar return not (instance1 < instance2) que devolverá el resultado opuesto al operador < ya implementado.

¿Qué método mágico debe utilizarse?

Selecciona la respuesta correcta

¿Todo estuvo claro?

Sección 5. Capítulo 4
We're sorry to hear that something went wrong. What happened?
some-alt