Índice de contenido
22.2.2 ¿Por qué no tener sobrecarga de operadores? Si la sobrecarga de operadores es una buena idea, ¿por qué no todos los lenguajes de programación apoyarlo? Curiosamente, Java, un lenguaje de programación muy utilizado, no soporte de sobrecarga del operador! ¡Una respuesta es porque se puede abusar de ella! Por ejemplo, ¿cuál es el significado de la siguiente código: No está claro qué significa ‘+’ en este contexto; de qué manera se suma Denise a Juan; ¿Significa que se van a casar? Si es así, ¿cuál es el resultado que se tiene en p3? El problema aquí es que desde una perspectiva de diseño (que en este caso puede ser puramente intuitivo, pero en otros casos puede estar relacionado con la intención de una aplicación) el El operador más no tiene sentido para el tipo Persona. Sin embargo, no hay nada en el lenguaje Python para indicar esto y, por lo tanto, cualquiera puede codificar cualquier operador en ¡cualquier clase! Como principio general de diseño; los desarrolladores deben seguir la semántica de tipos y, por lo tanto, solo debe implementar aquellos operadores que sean apropiados para el tipo que se está desarrollando. Por ejemplo, para tipos de valores aritméticos como Cantidad tiene mucho sentido proporcionar un operador más, pero para dominios específicos tipos orientados a datos como Person no lo hace. 22.2.3 Implementación de sobrecarga de operadores Para implementar operadores como ‘+’ en una clase definida por el usuario es necesario implementar métodos específicos que luego se asignan a la aritmética o lógica operadores utilizados por los usuarios de la clase. Estos métodos se consideran especiales porque comienzan y terminan con un guion bajo doble (’__’). Estos métodos se consideran privados y, por lo general, restringido para implementaciones orientadas a Python (ya las hemos visto con métodos como init() y str()). Como ejemplo, supongamos que queremos implementar los operadores ‘+’ y ‘−’ para nuestro tipo Cantidad. También queremos que nuestro tipo de cantidad tenga un valor real y ser capaz de convertirse en una cadena con fines de impresión. Para implementar los operadores ‘+’ y ‘−’ necesitamos proporcionar dos métodos especiales uno proporcionará la implementación del operador ‘+’ y otro proporcionará el implementación del operador ‘−’: p1 = Persona(‘Juan’) p2 = Persona(‘Denise’) p3 = p1 + p2 242 22 Sobrecarga del operador
popular post
El modelo AR de series temporales univariadas
Resumen: En esta entrada, descubrirá el modelo AR: El modelo autorregresivo.
Leer másEvaluación de modelos para pronosticar
Resumen: Al desarrollar modelos de aprendizaje automático, generalmente se comparan varios modelos durante la fase de construcción.
Leer másModelos para pronosticar
Resumen: El pronóstico, traducido groseramente como la tarea de predecir el futuro, ha estado presente en la sociedad humana durante siglos.
Leer más