# -*- coding:utf-8 -*- class Student: def __init__(self, name, grade): self.name = name self.grade = grade def print_grade(self): print(f"{self.name}'s grade is {self.grade}") s1 = Student("Tom", 8) s2 = Student("Jerry", 7) s1.print_grade() s2.print_grade() 请继续优化,你前面理解错了
时间: 2024-03-17 12:44:34 浏览: 157
好的,如果我理解错了,那么我来进行另一种优化。既然每个学生都有姓名和成绩这两个属性,那么我们可以将它们抽象出来,形成一个独立的类,即 `Person` 类。然后,我们再将 `Student` 类定义为 `Person` 类的子类,这样 `Student` 类就自动继承了 `Person` 类的属性和方法。代码如下:
```python
# -*- coding:utf-8 -*-
class Person:
def __init__(self, name):
self.name = name
class Student(Person):
def __init__(self, name, grade):
super().__init__(name)
self.grade = grade
def print_grade(self):
print(f"{self.name}'s grade is {self.grade}")
s1 = Student("Tom", 8)
s2 = Student("Jerry", 7)
s1.print_grade()
s2.print_grade()
```
在上面的代码中,我们定义了一个 `Person` 类,它只有一个 `name` 属性。然后,我们将 `Student` 类定义为 `Person` 类的子类,这样 `Student` 类就自动继承了 `Person` 类的 `name` 属性。在 `Student` 类中,我们只需要定义 `grade` 属性和 `print_grade()` 方法即可。
这样做的好处在于,可以提高代码的复用性和可维护性。如果我们需要在程序中定义其他类型的人员,比如老师、工作人员等,只需要让它们也继承自 `Person` 类即可。这样可以减少重复代码,同时也有利于代码的扩展和维护。
阅读全文