3.编写出一个通用的人员类(Person),该类具有姓名(name)、年龄(age)、性别(sex)等域,并包含一个吃饭的方法(eat)该方法输出“民以食为天!”信息。然后对Person 类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩,同时对父类的eat方法进行覆盖,第一行调用父类的eat方法输出“民以食为天!”,第二行输出“学校有7个餐厅可供选择!”信息。最后在测试函数中分别对Person类和Student类的功能进行验证。程序运行效果参见图。
时间: 2024-02-16 21:05:14 浏览: 26
以下是实现代码:
```python
class Person:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def eat(self):
print("民以食为天!")
class Student(Person):
def __init__(self, name, age, sex, grades):
super().__init__(name, age, sex)
self.grades = grades
def average_grade(self):
return sum(self.grades) / len(self.grades)
def eat(self):
super().eat()
print("学校有7个餐厅可供选择!")
# 测试
person = Person("张三", 20, "男")
person.eat()
student = Student("李四", 18, "女", [90, 80, 85, 95, 92])
print("平均成绩为:", student.average_grade())
student.eat()
```
输出结果:
```
民以食为天!
平均成绩为: 88.4
民以食为天!
学校有7个餐厅可供选择!
```