Index of content
26.5 Subclases virtuales En la mayoría de los lenguajes de programación orientados a objetos, para que una clase sea tratada como subclase de otra clase, es necesario que la subclase amplíe la clase padre. Sin embargo, Python tiene un enfoque más relajado para escribir, como lo ilustra la idea de Duck Typing (discutido en el próximo capítulo). En algunas situaciones, sin embargo, es útil poder confirmar que un tipo es un subclase de otra o que una instancia es una instancia de un tipo específico (que puede provienen de la jerarquía de clases del objeto) en tiempo de ejecución. De hecho, en Python, no es necesario ser una subclase real de una clase principal para considerarse una subclase; en cambio, las subclases virtuales permiten que una clase sea tratada como una subclase de otra a pesar de que no existe una relación de herencia directa entre ellos. La clave aquí es que la subclase virtual debe coincidir con el requerido interfaz presentada por la clase principal virtual. Esto se hace registrando una clase como Subclase Virtual de una Base Abstracta Clase. Es decir, la clase principal virtual debe ser un ABC y luego la subclase puede ser registrado (en tiempo de ejecución) como una subclase virtual de ABC. Esto se hace usando un método llamado registro(). Una vez que una clase se registra como una subclase de un ABC, issubclass() y Los métodos isintance() devolverán True para esa clase con respecto a la virtual clase de padres. Por ejemplo, dadas las siguientes dos clases actualmente independientes: de abc importar ABCMeta clase Persona(metaclase=ABCMeta): def init(yo, nombre, edad): self.nombre = nombre self.edad = edad def cumpleaños (uno mismo): imprimir(‘Feliz cumpleaños’) clase Empleado(objeto): def init(yo, nombre, edad, id): self.nombre = nombre self.edad = edad self.id = id def cumpleaños (uno mismo): imprimir(‘Es tu cumpleaños’) Si ahora verificamos si Empleado es una subclase de Persona, obtendremos el valor Falso devuelto. Por supuesto, también obtendremos Falso si verificamos para ver un La instancia de Employee es en realidad una instancia de la clase Person: 26.5 Subclases virtuales 305
popular post
Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
Read MoreTemas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
Read More• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.
Read More