设计一个学生类,包含学生学号、姓名和成绩。计算3名学生的平均成绩。 高级要求:利用运算符重载的方式计算总成绩; 高级要求:将学生类单独打包成模块。
时间: 2024-09-12 09:05:24 浏览: 43
设计一个简单的学生类(Student),可以使用Python来实现:
```python
class Student:
def __init__(self, id, name, score):
self.id = id
self.name = name
self.score_list = [score]
def add_score(self, new_score):
"""
运算符重载,添加新的成绩
"""
self.score_list.append(new_score)
def get_average_score(self):
"""
计算平均成绩
"""
return sum(self.score_list) / len(self.score_list)
# 创建3名学生实例
student1 = Student(1, '张三', 85)
student2 = Student(2, '李四', 90)
student3 = Student(3, '王五', 92)
# 添加更多成绩
student1.add_score(88)
student2.add_score(92)
student3.add_score(95)
# 计算并打印平均成绩
average_score = (student1.get_average_score() + student2.get_average_score() + student3.get_average_score()) / 3
print(f"三名学生的平均成绩是:{average_score}")
# 将学生类打包成模块
import os
os.system('mkdir -p my_module')
with open(os.path.join('my_module', '__init__.py'), 'w'): pass
with open(os.path.join('my_module', 'student.py'), 'w') as f:
f.write("from . import *") # 如果需要导入内部类,这里需要相对导入
f.write("\n\n")
f.write("class Student:\n...")
```
在这个例子中,我们创建了一个`Student`类,包含了学号、姓名和一个存储成绩的列表。`add_score`方法实现了运算符重载,允许通过加法操作添加新成绩。`get_average_score`则计算并返回当前所有成绩的平均值。
为了满足高级要求,我们将学生类放在一个单独的模块`my_module`中,并通过os系统命令生成必要的目录结构和导入设置。
阅读全文