RA06 - Python
|
|
Título del Test:
![]() RA06 - Python Descripción: Parte 4 |



| Comentarios |
|---|
NO HAY REGISTROS |
|
En el ejemplo de Perro y Gato, ¿qué idea clave de polimorfismo ilustra la función presentar(animal)?. Comprobar con isinstance si es perro o gato. La función solo necesita que el objeto tenga hablar, sin importar la clase concreta. Solo acepta objetos Perro. Necesita conocer toda la jerarquía de herencia. ¿Qué significa la frase del duck typing “si camina como un pato y grazna como un pato…”?. Comprobar el tipo con type(). Heredar de una clase Pato. Basta con que tenga los métodos esperados para tratarlo como ese tipo. Todos los objetos deben tener los mismos métodos. En procesar_pago(pago), ¿qué se asume sobre Tarjeta y Paypal?. Implementan pagar_todo(). Deben heredar de PagoBase. Deben proporcionar autorizar() y capturar() para que la función funcione. Solo pueden venir del módulo tarjetas. ¿Cuál es el riesgo principal asociado al uso intensivo de duck typing sin más controles ni tipos estáticos?. Que el código deje de ser polimórfico y obligue a usar herencia clásica para todas las estructuras. Que los errores por falta de métodos o firmas incompatibles aparezcan en tiempo de ejecución en lugar de detectarse antes. Que Python impida crear nuevas clases porque todas tendrían que declarar una interfaz formal previa. Que los objetos pierdan automáticamente sus atributos cuando se usan en funciones que esperan otra interfaz distinta. Papel de la clase abstracta Exportador. Clase concreta instanciable. Evitar el polimorfismo. Define el contrato exportar que deben implementar las subclases. Solo anotaciones. Ventaja de volcar(exp: Exportador, datos). Solo acepta CSV. Permite usar exportar sin saber si es CSV, JSON u otro formato. Obliga a usar json. equiere if isinstance. Ventaja de typing.Protocol. Obliga a heredar. Evita comprobaciones de tipo. Describe interfaz estructural sin heredar de clase base. Bloquea funciones polimórficas. En el ejemplo de `Bolsa`, ¿por qué decimos que el objeto se “comporta como” una colección al usar `__len__`, `__iter__` y `__contains__`?. Hereda de list. Implementa __len__, __iter__ y __contains__ → permite len, for e in. Se convierte a lista. Solo guarda enteros. Beneficio de esos métodos dunder. Restringir uso. Evitar for. Permitir usar código genérico que trabaja con colecciones. Convertirse en diccionario. Ventaja polimórfica frente a cadena if/elif en envíos. Centralizar todo. Cada tipo implementa su propio coste sin modificar código existente. Evitar herencia. Coste fijo. Polimorfismo en patrón plantilla Reporte. generar cambia. Constructor redefine todo. Subclases redefinen _datos y _render manteniendo el flujo general. __repr__ cambia. Síntoma de falta de polimorfismo. Métodos iguales en clases. Cadenas if isinstance y elif según tipo concreto. Usar __len__. Usar clase abstracta. |




