设计一个类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()
输入样例:
李丽君
1999
博士
计算机
输出样例:
姓名:李丽君,年龄:23
教师:姓名:李丽君,年龄:23,学位:博士
学生:姓名:李丽君,年龄:23,专业:计算机
class Person:
def __init__(self, name, birth_year):
self.name = name
self.birth_year = birth_year
def getAge(self, current_year):
return current_year - self.birth_year
def getName(self):
return self.name
def __str__(self):
return f"姓名:{self.name},年龄:{self.getAge(2022)}"
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(2022)},学位:{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(2022)},专业:{self.major}"