Указатель содержания
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
Temas de Pregrado en Ciencias de la Computación Principiantes Guía de Python 3 Programación Juan caza
Прочитайте большеTemas de Pregrado en Ciencias de la Computación Principiantes Guía de Python 3 Programación Juan caza
Прочитайте большеgratis. Para la mayor parte del trabajo que hago en Python, la versión Community es más que adecuado y por lo tanto es la versión que puede descargar e instalar (nota con el Versión profesional, obtiene una prueba gratuita, pero deberá pagar la versión completa versión al final de la versión de prueba o vuelva a instalar la versión de la Comunidad en ese momento).
Прочитайте больше