编写学生类,属性包含:学号、姓名、成绩;操作包括:带参数的构造方法,显示学生信息,重写equals()方法,实现按学号比较。 输出格式:(学号10列,姓名10列,成绩6列且保留1位小数) 学号: 200807201 姓名: wanghai 成绩: 78.0
时间: 2024-01-18 08:04:19 浏览: 75
写一个类Student,包含三个属性学号id,姓名name和年龄age;要求覆盖基类Object中的ToString()方法和Equals()方法,使得直接输出Student对象时输出的是对象的id,name和age信息;并且当两个对象的学号相同时认为它们相等;
4星 · 用户满意度95%
好的,我可以帮您写一个学生类,代码如下:
```python
class Student:
def __init__(self, id, name, score):
self.id = id
self.name = name
self.score = score
def show_info(self):
print(f"学号:{self.id:<10}姓名:{self.name:<10}成绩:{self.score:>6.1f}")
def __eq__(self, other):
if isinstance(other, Student):
return self.id == other.id
return False
```
这是一个 Python 的类,包含了一个带参数的构造方法和两个方法:`show_info()` 和 `__eq__()`。其中,`show_info()` 用于显示学生的信息,输出格式如您所需;`__eq__()` 方法重写了 `==` 运算符,用于按学号比较两个学生对象是否相等。
您可以使用以下代码进行测试:
```python
if __name__ == '__main__':
s1 = Student("200807201", "wanghai", 78.0)
s2 = Student("200807202", "zhangsan", 85.5)
s3 = Student("200807201", "lisi", 92.5)
s1.show_info() # 学号:200807201 姓名:wanghai 成绩: 78.0
s2.show_info() # 学号:200807202 姓名:zhangsan 成绩: 85.5
s3.show_info() # 学号:200807201 姓名:lisi 成绩: 92.5
print(s1 == s2) # False
print(s1 == s3) # True
```
您可以根据您的需要进行修改和调整。
阅读全文