python实现创建一个名为“大学生”的父类,要求: • 初始化“大学生”实例时,应输入姓名、性别、年龄、家乡省份、学校名称等成员变量; • 初始化一个经验值变量,设置为 0; • 其中,年龄、家乡省份与经验值应为私有变量,外部不能够访问; • 创建三个 get 方法分别获取年龄、家乡省份与经验值信息。 • 创建一个名为“上自习”的方法,其输入变量为上自习的地点 X,每次调用时,会打印“学生 某某在 X 上自习”,并使经验值+1。 2. 创建一个名为“重邮学生”的子类,继承“大学生”父类,要求: • 初始化“重邮学生”实例时,父类学校名称应设置为“重邮”,并增加两个成员变量:学院名 称与学号; • 对“上自习”方法进行修改,使其打印“重邮学生某某在 X 上自习”,经验值+1 不变。 3. 编写主函数,用自己真实信息,创建一个“重邮学生”的对象(示例),并实现: • 打印该学生的基本信息:姓名、性别、年龄、家乡省份、学校、学院、学号、经验值等等; • 在不同地方上 N 次自习(地方自拟),最后打印经验值。
时间: 2024-01-22 21:18:07 浏览: 74
定义一个学生类(Student),要求: (1)初始化数据成员数据成员(_Sno,_Sname,_Sage); (2)通过属性装饰器定义数据成员(Sno,Sname,Sage); (3)定义特殊方法
以下是Python实现:
```python
# 定义大学生类
class CollegeStudent:
def __init__(self, name, gender, age, hometown, school):
self.name = name
self.gender = gender
self.__age = age
self.__hometown = hometown
self.__experience = 0
self.school = school
def get_age(self):
return self.__age
def get_hometown(self):
return self.__hometown
def get_experience(self):
return self.__experience
def study(self, place):
print(f"学生 {self.name} 在 {place} 上自习")
self.__experience += 1
# 定义重邮学生类
class CQUStudent(CollegeStudent):
def __init__(self, name, gender, age, hometown, college, student_id):
super().__init__(name, gender, age, hometown, "重邮")
self.college = college
self.student_id = student_id
def study(self, place):
print(f"重邮学生{self.name} 在 {place} 上自习")
self._CollegeStudent__experience += 1 # 经验值+1,注意这里调用父类私有变量的方法
# 创建一个重邮学生对象
s = CQUStudent("张三", "男", 20, "四川", "计算机科学与技术学院", "2019111111")
# 打印基本信息
print(f"姓名:{s.name}")
print(f"性别:{s.gender}")
print(f"年龄:{s.get_age()}")
print(f"家乡:{s.get_hometown()}")
print(f"学校:{s.school}")
print(f"学院:{s.college}")
print(f"学号:{s.student_id}")
print(f"经验值:{s.get_experience()}")
# 进行自习
for i in range(5):
s.study(f"图书馆{i+1}")
# 打印最终经验值
print(f"最终经验值:{s.get_experience()}")
```
输出结果:
```
姓名:张三
性别:男
年龄:20
家乡:四川
学校:重邮
学院:计算机科学与技术学院
学号:2019111111
经验值:0
重邮学生张三 在 图书馆1 上自习
重邮学生张三 在 图书馆2 上自习
重邮学生张三 在 图书馆3 上自习
重邮学生张三 在 图书馆4 上自习
重邮学生张三 在 图书馆5 上自习
最终经验值:5
```
阅读全文