class Persona:
    def __init__(self, nombre, apellidos, edad):
        """Constructor de la clase"""
        self.Nombre = nombre
        self.Apellidos = apellidos
        self.Edad = edad

    def __str__(self):
        return (
            "Nombre: "
            + self.nombre()
            + " "
            + self.apellidos()
            + " edad: "
            + str(self.edad())
        )

    def visualiza(self):
        """Visualiza su valor"""
        print(self)

    def nombre(self):
        """retorna el nombre"""
        return self.Nombre

    def apellidos(self):
        """Retorna los apellidos"""
        return self.Apellidos

    def edad(self):
        """Retorna la edad"""
        return self.Edad


class Medico(Persona):
    def __init__(self, nombre, apellidos, edad, especialidad, cedula):
        """Constructor de la clase"""
        Persona.__init__(self, nombre, apellidos, edad)
        self.Especialidad = especialidad
        self.Cedula = cedula

    def __str__(self):
        return (
            "Nombre del medico: "
            + self.nombre()
            + " "
            + self.apellidos()
            + " especialidad: "
            + self.especialidad()
            + " cedula: "
            + self.cedula()
        )

    def visualiza(self):
        """Visualiza su valor"""
        print(self)

    def especialidad(self):
        """retorna el nombre"""
        return self.Especialidad

    def cedula(self):
        """Retorna los apellidos"""
        return self.Cedula


class Profesor(Persona):
    def __init__(self, nombre, apellidos, edad, identificador):
        """Constructor de la clase"""
        Persona.__init__(self, nombre, apellidos, edad)
        self.Identificador = identificador

    def __str__(self):
        return (
            "Nombre del profesor: "
            + self.nombre()
            + " "
            + self.apellidos()
            + " identificador: "
            + self.identificador()
        )

    def visualiza(self):
        """Visualiza su valor"""
        print(self)

    def identificador(self):
        """retorna el nombre"""
        return self.Identificador


"""
Prueba de las clases
"""
if __name__ == "__main__":
    a = []
    xa = Profesor("Antonio", "Carrillo", 50, "Prof 3289239823")
    a.append(xa)

    xb = Medico("Juan", "Ferrer", 50, "cirujano", "832098092")
    a.append(xb)

    for k in a:
        k.visualiza()
