Índice de contenido
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
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