设计一个类Person,实现以下方法: __init__():构造方法,带两个输入参数:姓名(字符串)和出生年份(整数) getAge():返回年龄,当前年是2022年 getName():返回姓名 __str__():返回姓名、年龄的描述 设计一个子类Instructor,继承Person类,实现以下方法: __init__():构造方法,参数除了姓名和出生年份外,还包括学历 getDegree():返回教师的学历 __str__():返回姓名、年龄、学历的描述 设计一个子类Student,继承Pe
时间: 2024-01-24 09:17:45 浏览: 122
python基础进阶1.6:面向对象之类,对象及__init__(),self相关用法讲解
rson类,实现以下方法: __init__():构造方法,参数除了姓名和出生年份外,还包括所在学校和专业 getSchool():返回所在学校 getMajor():返回专业 __str__():返回姓名、年龄、所在学校、专业的描述
以下是代码实现:
```python
class Person:
def __init__(self, name, birth_year):
self.name = name
self.birth_year = birth_year
def getAge(self):
return 2022 - self.birth_year
def getName(self):
return self.name
def __str__(self):
return f"{self.name}, {self.getAge()} years old"
class Instructor(Person):
def __init__(self, name, birth_year, degree):
super().__init__(name, birth_year)
self.degree = degree
def getDegree(self):
return self.degree
def __str__(self):
return f"{self.name}, {self.getAge()} years old, {self.degree} degree"
class Student(Person):
def __init__(self, name, birth_year, school, major):
super().__init__(name, birth_year)
self.school = school
self.major = major
def getSchool(self):
return self.school
def getMajor(self):
return self.major
def __str__(self):
return f"{self.name}, {self.getAge()} years old, studying {self.major} at {self.school}"
```
使用示例:
```python
# 创建一个Person对象
p = Person("Alice", 2000)
print(p.getName()) # 输出 "Alice"
print(p.getAge()) # 输出 22
print(p) # 输出 "Alice, 22 years old"
# 创建一个Instructor对象
i = Instructor("Bob", 1960, "PhD")
print(i.getName()) # 输出 "Bob"
print(i.getAge()) # 输出 62
print(i.getDegree()) # 输出 "PhD"
print(i) # 输出 "Bob, 62 years old, PhD degree"
# 创建一个Student对象
s = Student("Charlie", 2002, "XYZ University", "Computer Science")
print(s.getName()) # 输出 "Charlie"
print(s.getAge()) # 输出 20
print(s.getSchool()) # 输出 "XYZ University"
print(s.getMajor()) # 输出 "Computer Science"
print(s) # 输出 "Charlie, 20 years old, studying Computer Science at XYZ University"
```
阅读全文