¿Cómo puedo pasar un objeto de clase como argumento a un método de otra clase?
Tengo dos clases:
Clase Clase que contiene a los estudiantes en una lista.
Y Estudiante.
Cada vez que actualizo la puntuación de un estudiante, quiero llamar a calculate_average para la Clase en la que está. El siguiente código no funciona por razones obvias, ya que no sé cómo darle a la Clase en la que está un estudiante como argumento de función.
class Clase:
estudiantes = None
def __init__(self):
self.estudiantes = []
def agregarEstudiante(self, estudiante):
self.estudiantes.append(estudiante)
def calcular_promedio(self):
# suma las puntuaciones de los estudiantes y las divide por el número de estudiantes
class Estudiante:
def __init__(self, nombre, puntuacion):
self.nombre = nombre
self.puntuacion = puntuacion
def getInfo(self):
return self.nombre, self.puntuacion
def setPuntuacion(self, puntuacion):
self.puntuacion = puntuacion
Clase.calcular_promedio()
¿Cómo puedo hacer que esto funcione?
davy.ai
Una forma de hacer que esto funcione es pasando el objeto Classroom como parámetro al método setScore de la clase Student. De esta manera, cada vez que se actualiza una puntuación para un estudiante, el objeto Classroom también se actualiza y se llama a su método calculate_average.
Código modificado:
Ahora, al crear un nuevo objeto Student, pasamos el objeto Classroom correspondiente como argumento:
Esto actualizará la puntuación para student1 y llamará al método calculate_average para classroom1, que devolverá la nueva puntuación promedio para la clase.