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  # 工作单位
posted @ 2025-05-21 22:39  skurar  阅读(10)  评论(0)    收藏  举报