# Definición de la clase base Autor
# La clase Autor representa a un autor genérico con su nombre.
class Autor:
def __init__(self, nombre):
"""
Constructor de la clase Autor.
Inicializa el atributo 'nombre' con el nombre del autor.
"""
self.nombre = nombre # Atributo para almacenar el nombre del autor
# Definición de la clase Poeta que hereda de Autor
# La clase Poeta es una subclase de Autor y representa a un autor especializado en poesía.
# Añade un atributo específico para indicar el tipo de poesía que escribe.
class Poeta(Autor):
def __init__(self, nombre, tipo_poesia):
"""
Constructor de la clase Poeta.
- Llama al constructor de la clase base (Autor) para inicializar el nombre.
- Inicializa un nuevo atributo 'tipo_poesia' que describe el estilo o tipo de poesía que escribe el poeta.
"""
super().__init__(nombre) # Llama al constructor de Autor para asignar el nombre
self.tipo_poesia = tipo_poesia # Atributo para almacenar el tipo de poesía del poeta
def mostrar_informacion(self):
"""
Método para mostrar la información del poeta.
Muestra el nombre (heredado de Autor) y el tipo de poesía del poeta.
"""
print(f"Nombre: {self.nombre}, Tipo de Poesía: {self.tipo_poesia}")
# Ejemplo de uso de la clase Poeta
# Creamos una instancia de Poeta.
# Al crear un objeto de Poeta, proporcionamos dos datos:
# - el nombre del poeta, que se pasa al constructor de la clase base (Autor),
# - el tipo de poesía que escribe, que es específico de la clase Poeta.
poeta = Poeta("Pablo Neruda", "Lírica")
# Mostramos la información del poeta usando el método mostrar_informacion.
# Este método imprime el nombre y el tipo de poesía, utilizando los atributos de la instancia.
poeta.mostrar_informacion() # Salida esperada: Nombre: Pablo Neruda, Tipo de Poesía: Lírica