Python0014】设计高校人员信息包,并完成测试
from abc import ABC, abstractmethod
定义人员基类
class People:
def __init__(self, name, gender, age):
self.name = name # 姓名
self.gender = gender # 性别
self.age = age # 年龄
def display(self):
"""输出人员基本信息"""
print(f"姓名: {self.name}, 性别: {self.gender}, 年龄: {self.age}")
定义学生类,继承自People
class Student(People):
def __init__(self, name, gender, age, student_id, enroll_date, score):
super().__init__(name, gender, age)
self.student_id = student_id # 学号
self.enroll_date = enroll_date # 入学时间
self.score = score # 入学成绩
def display(self):
"""输出学生信息"""
super().display()
print(f"学号: {self.student_id}, 入学时间: {self.enroll_date}, 入学成绩: {self.score}")
定义教师类,继承自People
class Teacher(People):
def __init__(self, name, gender, age, position, department, work_years):
super().__init__(name, gender, age)
self.position = position # 职务
self.department = department # 部门
self.work_years = work_years # 工作年限
def display(self):
"""输出教师信息"""
super().display()
print(f"职务: {self.position}, 部门: {self.department}, 工作年限: {self.work_years}")
定义研究生类,继承自Student
class Graduate(Student):
def __init__(self, name, gender, age, student_id, enroll_date, score, research_area, supervisor):
super().__init__(name, gender, age, student_id, enroll_date, score)
self.research_area = research_area # 研究方向
self.supervisor = supervisor # 导师
def display(self):
"""输出研究生信息"""
super().display()
print(f"研究方向: {self.research_area}, 导师: {self.supervisor}")
定义工作接口
class WorkInterface(ABC):
@abstractmethod
def work(self):
"""工作方法"""
pass
实现在职研究生类,继承Graduate并实现WorkInterface
class GradOnWork(Graduate, WorkInterface):
def __init__(self, name, gender, age, student_id, enroll_date, score, research_area, supervisor, company):
super().__init__(name, gender, age, student_id, enroll_date, score, research_area, supervisor)
self.company = company # 工作单位

浙公网安备 33010602011771号