我搜索过类似的问题,但没有找到任何东西。 显然是因为我的问题很基本,但我觉得很难理解
我有一个班叫学生。在这节课上,我得到一个学生的名字,他的成绩,然后计算他的平均成绩。那当然很简单。 以下是我迄今为止取得的成功:
class Student:
def __init__(self, name, grades_list):
self.name = name
self.grades_list = grades_list
def get_grade_avg(self):
avg = sum(self.grades_list) / len(self.grades_list)
return avg
def get_name(self):
return self.name
从上一部分我有:
john = Student("John", [100, 90 ,95])
现在我需要回答以下问题:
编写一个类教室,其构造函数接收Student类型的列表,并将该列表保存给成员。以下内容应创建教室:
class_room = ClassRoom([John])
实现课堂教学,以便在课堂类型上调用print(class_room)时,按顺序打印学生姓名和学生平均成绩的元组列表
调用打印(教室)应输出:
[('John', 95)]
我该怎么做
我对OOP非常陌生,甚至不知道如何开始
谢谢大家!
您需要向类和学生类添加str()函数str()如果课堂上的学生应该反复浏览学生名单,并逐个打印出来
您可以这样做:
在对某个对象调用
print
时,将调用其__str__
方法,如果未定义该方法,则调用__repr__
。默认情况下,某个对象的__repr__
是这样的:<__main__.Student object at 0x7f4b35a3a630>
在上面的代码中,a
Student
知道如何显示自己(name,avg),因此如果您愿意,可以打印它:print(john)
对于
ClassRoom
,只需覆盖__str__
即可显示学生列表。因为每个学生都知道如何表现自己,所以他们会做好的相关问题 更多 >
编程相关推荐