Yunyuzuiluo

Python 继承示例代码

class People(object):
"""人员基类"""

def __init__(self, name, sex, age):
    self.name = name
    self.sex = sex
    self.age = age

def display(self):
    """显示人员基本信息"""
    print(f"姓名: {self.name}, 性别: {self.sex}, 年龄: {self.age}")

class Student(People):
"""学生类,继承自People"""

def __init__(self, name, sex, age, stu_id, enroll_time, score):
    super().__init__(name, sex, age)  # 调用父类构造函数
    self.stu_id = stu_id
    self.enroll_time = enroll_time
    self.score = score

def display(self):
    """显示学生信息"""
    super().display()  # 调用父类显示方法
    print(f"学号: {self.stu_id}, 入学时间: {self.enroll_time}, 入学成绩: {self.score}")

class Teacher(People):
"""教师类,继承自People"""

def __init__(self, name, sex, age, position, department, work_time):
    super().__init__(name, sex, age)
    self.position = position
    self.department = department
    self.work_time = work_time

def display(self):
    """显示教师信息"""
    super().display()
    print(f"职务: {self.position}, 部门: {self.department}, 工作时间: {self.work_time}")

class Graduate(Student):
"""研究生类,继承自Student"""

def __init__(self, name, sex, age, stu_id, enroll_time, score, research_area, advisor):
    super().__init__(name, sex, age, stu_id, enroll_time, score)
    self.research_area = research_area
    self.advisor = advisor

def display(self):
    """显示研究生信息"""
    super().display()
    print(f"研究方向: {self.research_area}, 导师: {self.advisor.name}")

class GradOnWork(Graduate, Teacher):
def init(self, name, sex, age, stu_id, enroll_time, score,
research_area, advisor, position, department, work_time):
# 直接初始化People部分
People.init(self, name, sex, age)
# 初始化Student部分
self.stu_id = stu_id
self.enroll_time = enroll_time
self.score = score
# 初始化Graduate部分
self.research_area = research_area
self.advisor = advisor
# 初始化Teacher部分
self.position = position
self.department = department
self.work_time = work_time

def display(self):
    """显示在职研究生信息"""
    print("=== 学生信息 ===")
    Graduate.display(self)
    print("\n=== 教师信息 ===")
    Teacher.display(self)

测试代码

if name == "main":
print("=== 测试People类 ===")
p = People("张三", "男", 30)
p.display()

print("\n=== 测试Student类 ===")
s = Student("李四", "女", 20, "2023001", "2023-09-01", 85.5)
s.display()

print("\n=== 测试Teacher类 ===")
t = Teacher("王教授", "男", 45, "教授", "计算机学院", "2010-08-15")
t.display()

print("\n=== 测试Graduate类 ===")
g = Graduate("赵同学", "女", 25, "2021001", "2021-09-01", 90.0, "人工智能", t)
g.display()

print("\n=== 测试GradOnWork类 ===")
gow = GradOnWork("钱老师", "男", 35, "2019001", "2019-09-01", 88.0,
                 "机器学习", t, "副教授", "信息学院", "2015-07-01")
gow.display()

posted on 2025-04-24 09:17  刘晋宇  阅读(13)  评论(0)    收藏  举报

导航