es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python: dos clases que agregan la entrada del usuario a la misma lista, cómo mostrar sus datos en un bucle.

Soy nueva/o en la programación de Python. Actualmente estoy trabajando en un programa simple que involucra Clases. Tengo una clase llamada Estudiantes y otra llamada Instructor. Ambas aceptan la entrada del usuario y guardan/anexan en la misma lista llamada registros de la universidad.. Cuando se trata de mostrar los resultados, tengo dos métodos ‘display_student_info()’ y ‘display_instr_info()’ dentro de un bucle for, pero obtengo el error:

                for item in registros_universidad:
                    item.display_student_info()
                for item in registros_universidad:
                    item.display_instr_info()
'...
AttributeError: el objeto 'Instructor' no tiene el atributo 'display_student_info'

Por favor, aconsejen..

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando llamar al método ‘display_student_information()’ en un objeto de la clase ‘Instructor’ que no tiene ese método. Este error ocurre porque estás llamando a un método en un objeto que no tiene ese método en particular.

    Para solucionar este error, debes asegurarte de que estás llamando al método correcto en el objeto correcto. Puedes hacer esto utilizando declaraciones condicionales para comprobar la clase del objeto antes de llamar al método.

    Un ejemplo de cómo puedes solucionar este error se muestra a continuación:

    for item in college_records:
        if isinstance(item, Students):
            item.display_student_information()
        elif isinstance(item, Instructor):
            item.display_instr_information()
    

    En el código anterior, primero comprobamos si el objeto actual en el bucle es una instancia de la clase ‘Students’. Si lo es, llamamos al método ‘display_student_information()’. Si no lo es, comprobamos si es una instancia de la clase ‘Instructor’. Si lo es, llamamos al método ‘display_instr_information()’.

    Al hacer esto, se llama al método correcto en el objeto correcto y el error debería resolverse.

Comments are closed.