Tecnología

Inicio

Cómo sobrescribir equals en Python

En la programación orientada a objetos (POO), el concepto de los operadores predominantes de comparación (menor que, mayor que, igual a, etc.) es esencial. Con el fin de asegurarse de que las comparaciones de objetos se comportan correctamente (es decir, a medida que los de la intención), debe modificar la funcionalidad de un operador para reflejar cómo deben interactuar dos objetos. Python no es una excepción a la regla.

Instrucciones

1 Configurar una clase. Esta clase servirá para definir qué tipo de comparaciones un programador podría requerir en el transcurso de un programa. Llamar a la clase "comparar":

clase compare:

Escriba lo siguiente en el IDE:

. . . init def (auto, val1, val2):

. . . self.val1 = val1

. . . self.val2 = val2

Esto define la clase con dos valores de datos (val1, val2), que se inicializan cuando se crea una instancia de la clase.

2 Invalidar el operador "iguales". En la programación de ordenadores, los controles de operador de igualdad para la igualdad de valor y rentabilidad verdadera o falsa basan en la igualdad de los valores dados. Suponiendo que la igualdad de comparar el tipo depende de la val1 de cada objeto, escriba lo siguiente en el IDE:

. . . eq def (sí, otro):

. . . retorno (self.val1 == other.val1)

Esto anula el operador de igualdad (==) para que pueda ser redefinido.

3 Comprobar los resultados. Escriba lo siguiente en el IDE:

COMP1 = comparar (1,4)

comp2 = comparar (1, 57)

impresión (COMP1 == comp2)

Cierto

COMP1 == comp2 se imprimirá "verdadera" porque las variables VAL1 son iguales, y por lo tanto, por definición, los objetos son iguales.