1. 创建一个名为“大学生”的父类,要求: • 初始化“大学生”实例时,应输入姓名、性别、年龄、家乡省份、学校名称等成员变量; • 初始化一个经验值变量,设置为 0; • 其中,年龄、家乡省份与经验值应为私有变量,外部不能够访问; • 创建三个 get 方法分别获取年龄、家乡省份与经验值信息。 • 创建一个名为“上自习”的方法,其输入变量为上自习的地点 X,每次调用时,会打印“学生 某某在 X 上自习”,并使经验值+1。 2. 创建一个名为“重邮学生”的子类,继承“大学生”父类,要求: • 初始化“重邮学生”实例时,父类学校名称应设置为“重邮”,并增加两个成员变量:学院名 称与学号; • 对“上自习”方法进行修改,使其打印“重邮学生某某在 X 上自习”,经验值+1 不变。 3. 编写主函数,用自己真实信息,创建一个“重邮学生”的对象(示例),并实现: • 打印该学生的基本信息:姓名、性别、年龄、家乡省份、学校、学院、学号、经验值等等; • 在不同地方上 N 次自习(地方自拟),最后打印经验值
时间: 2024-02-03 17:11:59 浏览: 118
oop homework1_oop;_5to1_
5星 · 资源好评率100%
代码如下:
```python
class 大学生:
def __init__(self, name, gender, age, hometown, school):
self.name = name
self.gender = gender
self.__age = age
self.__hometown = hometown
self.__exp = 0
self.school = school
def get_age(self):
return self.__age
def get_hometown(self):
return self.__hometown
def get_exp(self):
return self.__exp
def 上自习(self, place):
print(f"学生 {self.name} 在 {place} 上自习")
self.__exp += 1
class 重邮学生(大学生):
def __init__(self, name, gender, age, hometown, academy, student_id):
super().__init__(name, gender, age, hometown, "重邮")
self.academy = academy
self.student_id = student_id
def 上自习(self, place):
print(f"重邮学生{self.name} 在 {place} 上自习")
self._大学生__exp += 1
if __name__ == "__main__":
# 创建一个重邮学生对象
student = 重邮学生("张三", "男", 20, "四川", "计算机科学与技术学院", "2019111111")
# 打印学生基本信息
print(f"姓名:{student.name}")
print(f"性别:{student.gender}")
print(f"年龄:{student.get_age()}")
print(f"家乡:{student.get_hometown()}")
print(f"学校:{student.school}")
print(f"学院:{student.academy}")
print(f"学号:{student.student_id}")
print(f"经验值:{student.get_exp()}")
# 上自习
for i in range(5):
student.上自习(f"教学楼{i+1}自习室")
# 打印经验值
print(f"经验值:{student.get_exp()}")
```
输出结果如下:
```
姓名:张三
性别:男
年龄:20
家乡:四川
学校:重邮
学院:计算机科学与技术学院
学号:2019111111
经验值:0
重邮学生张三 在 教学楼1自习室 上自习
重邮学生张三 在 教学楼2自习室 上自习
重邮学生张三 在 教学楼3自习室 上自习
重邮学生张三 在 教学楼4自习室 上自习
重邮学生张三 在 教学楼5自习室 上自习
经验值:5
```
阅读全文