设计一个学生类Student,每个学生都有三门课程的成绩,分别是语文、数学、物理。重载“+”运算符,用于两个学生对象每门成绩求和,重载方法返回一个学生对象,用程序实现多个学生成绩求和。
时间: 2023-12-18 14:05:58 浏览: 83
以下是实现上述功能的学生类Student的Python代码:
```python
class Student:
def __init__(self, name, chinese_score, math_score, physics_score):
self.name = name
self.chinese_score = chinese_score
self.math_score = math_score
self.physics_score = physics_score
def __add__(self, other):
new_chinese_score = self.chinese_score + other.chinese_score
new_math_score = self.math_score + other.math_score
new_physics_score = self.physics_score + other.physics_score
return Student("total", new_chinese_score, new_math_score, new_physics_score)
```
其中,Student类包含了学生的姓名和三门课程的成绩,使用了构造函数`__init__`进行初始化。重载运算符`__add__`,用于两个学生对象每门成绩求和,返回一个新的Student对象,其中姓名为"total"。
下面是使用这个类实现多个学生成绩求和的Python代码:
```python
# 创建多个学生对象
s1 = Student("张三", 80, 90, 85)
s2 = Student("李四", 75, 85, 90)
s3 = Student("王五", 90, 95, 80)
# 求多个学生对象每门成绩的总和
total = s1 + s2 + s3
# 打印总成绩
print("语文总成绩:", total.chinese_score)
print("数学总成绩:", total.math_score)
print("物理总成绩:", total.physics_score)
```
运行结果为:
```
语文总成绩: 245
数学总成绩: 270
物理总成绩: 255
```
可以看到,通过重载运算符`__add__`,我们可以轻松地实现多个学生成绩的求和操作。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)