python设计一个类Person,实现以下方法: __init__():构造方法,带两个输入参数:姓名(字符串)和出生年份(整数) getAge():返回年龄,当前年是2022年 getName():返回姓名 __str__():返回姓名、年龄的描述 设计一个子类Instructor,继承Person类,实现以下方法: __init__():构造方法,参数除了姓名和出生年份外,还包括学历 getDegree():返回教师的学历 __str__():返回姓名、年龄、学历的描述 设计一个子类Student,继承Person类,实现以下方法: __init__():构造方法,参数除了姓名和出生年份外,还包括主修专业 getMajor():返回学生的专业 __str__():返回姓名、年龄、专业的描述 测试程序输入姓名、年龄、学位、专业 输出相应的信息 类的定义: class Person() ...... class Instructor(...): ....... class Student(...): ....... 裁判测试程序样例: /* 请在这里填写答案 */ def main(): name = input() year = int(input()) degree = input() major = input() p = Person(name,year) print(p) t = Instructor(name,year,degree) print(t) s = Student(name,year,major) print(s) main()
时间: 2024-02-19 07:58:20 浏览: 87
python基础进阶1.6:面向对象之类,对象及__init__(),self相关用法讲解
好的,以下是代码实现:
```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()}岁"
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()}岁,学位为{self.degree}"
class Student(Person):
def __init__(self, name, birth_year, major):
super().__init__(name, birth_year)
self.major = major
def getMajor(self):
return self.major
def __str__(self):
return f"{self.name},{self.getAge()}岁,主修专业为{self.major}"
def main():
name = input("请输入姓名:")
birth_year = int(input("请输入出生年份:"))
degree = input("请输入学位:")
major = input("请输入专业:")
p = Person(name, birth_year)
print(p)
i = Instructor(name, birth_year, degree)
print(i)
s = Student(name, birth_year, major)
print(s)
if __name__ == '__main__':
main()
```
在上述代码中,我们定义了一个父类 `Person`,同时定义了两个子类 `Instructor` 和 `Student`,它们都继承了 `Person` 类。
`Person` 类实现了 `__init__()` 方法来初始化姓名和出生年份,同时实现了 `getAge()` 方法来计算年龄,实现了 `getName()` 方法来返回姓名,实现了 `__str__()` 方法来返回姓名和年龄的描述。
`Instructor` 类和 `Student` 类都在 `__init__()` 方法中调用父类的构造函数,然后分别添加了额外的属性 `degree` 和 `major`,并实现了各自的方法 `getDegree()` 和 `getMajor()` 来返回学位和专业。此外,它们还分别实现了 `__str__()` 方法来返回姓名、年龄、学位或专业的描述。
在 `main()` 函数中,我们分别创建了一个 `Person` 对象、一个 `Instructor` 对象和一个 `Student` 对象,并打印了它们的描述信息。
运行程序后,可以输入姓名、出生年份、学位和专业,并输出相应的信息。
阅读全文