我有两个班:学生班和教室。 我想让学生班得到一个学生的名字和一份学生成绩的清单。我还添加了一个方法,用于计算列表的平均值,一个用于获取学生姓名,另一个用于返回姓名和平均值的元组。 我希望教室类获得学生对象的列表,并定义一个方法,该方法在打印教室对象而不是对象的地址时返回元组列表
例如:
Moses = Student("Moses", [97.5, 87, 60])
Dan = Student("Dan", [85, 96, 100])
students = ["Moses", "Dan"]
classRoom = ClassRoom(students)
print(classRoom)
# The output should be:
[("Moses", 81.5), ("Dan", 93.66666666666667)]
我知道有一个使用:def __str__(self)
方法的选项,但我不知道如何正确使用它
这就是我迄今为止所尝试的:
class Student():
def __init__(self, student_name, grads_list):
self.__name = student_name
self.__grads = grads_list
def get_grade_avg(self):
return sum(self.__grads) / len(self.__grads)
def get_name(self):
return self.__name
def get_name_and_average(self):
return self.__name, self.__grads
class ClassRoom:
def __init__(self, student_list):
self.__students = student_list
def __str__(self):
for a_student in self.__students:
return "[" + str(a_student.get_name_and_average) + "]"
试试这个:
首先,创建教室对象实例时,需要学生对象列表,而不是字符串列表:
您还需要为学生类创建str方法:
最后,在课堂上确定str:
相关问题 更多 >
编程相关推荐