option
Cuestiones
ayuda
daypo
buscar.php

RA06 - Python

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
RA06 - Python

Descripción:
Parte 3

Fecha de Creación: 2026/02/21

Categoría: Otros

Número Preguntas: 10

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

Según la explicación del tema, ¿en qué situación está más justificado usar herencia entre dos clases?. Cuando una clase necesita llamar alguna vez a una función auxiliar que vive en otra clase independiente. Cuando existe una relación clara “es-un” y se comparte una parte importante del comportamiento entre las clases. Cuando una clase contiene internamente a otra y solo quiere delegar algunas operaciones concretas en ese objeto. Cuando se quiere evitar por completo escribir constructores y dejar toda la inicialización en módulos globales.

En el ejemplo de Animal y Perro, ¿qué papel desempeña super().__init__(nombre) dentro del constructor de la subclase?. Sirve para borrar todos los atributos previamente definidos en la clase hija antes de crear otros nuevos. Permite saltarse completamente la inicialización de la clase Animal y usar solo campos propios de Perro. Hace que el constructor de Perro se ejecute dos veces para asegurar que los datos queden coherentes en memoria. Llama al inicializador de la clase base para reutilizar su lógica y después completar la inicialización específica de Perro.

En el ejemplo de Registro y sus subclases, ¿qué diferencia conceptual hay entre RegistroSeguro.guardar y RegistroDummy.guardar respecto al método base?. Ambos métodos llaman al mismo código de la clase base sin añadir nada, por lo que el comportamiento es idéntico en todos los casos. La subclase segura reemplaza completamente el método sin usar el original, mientras la dummy solo añade trazas de registro alrededor. La versión segura extiende el comportamiento llamando a super y añadiendo logs, mientras la versión dummy lo reemplaza por una simulación. Ambas versiones evitan siempre llamar a super para que el método base no pueda ejecutarse en ningún escenario posible.

En la jerarquía de Empleado y Programador, ¿qué efecto tiene sobrescribir el atributo de clase CATEGORIA en la subclase?. Provoca que la clase base pierda para siempre su atributo de categoría. Hace que cualquier instancia use siempre la categoría de Empleado. Las instancias de Programador usan el valor redefinido mientras Empleado conserva el original. Obliga a que todas las futuras subclases copien la misma categoría.

En la definición de CuentaAhorro que hereda de Cuenta, ¿por qué es importante llamar a super().__init__(titular, saldo)?. Se reutiliza la validación y limpieza de la clase base evitando duplicar lógica. Python obliga siempre. Si no, no se podrían crear atributos nuevos. La herencia dejaría de existir.

En la herencia múltiple Evento(Loggable, JSONSerializable), ¿qué ventaja práctica se obtiene?. Crear una jerarquía muy profunda. Combinar capacidades ortogonales (log + JSON) sin duplicar código. Bloquear uno de los métodos heredados. Evitar composición.

En las clases cooperativas con super().f() y MRO, ¿qué se logra?. Cada subclase ejecuta su versión aislada. Se ignora el orden de resolución. Se encadenan todas las implementaciones siguiendo el MRO. Se saltan clases intermedias.

¿Qué deben aportar los mixins como ReprMixin y LogMixin?. Mucho estado propio. Capacidades pequeñas y combinables (logging, representación, etc.). Controlar herencia. Toda la lógica de negocio.

Herencia vs composición (Coche y Motor). Herencia siempre si contiene. Herencia si atributos iguales. Herencia → “es-un” / Composición → “tiene-un”. Siempre herencia.

Patrón Reporte con hooks _datos y _render. Las subclases no pueden cambiar la obtención de datos. El algoritmo general queda fijo y solo se cambian puntos de extensión. Los métodos privados pasan a ser API pública. La clase base no hace nada.

Denunciar Test