有点复杂,不知道怎么操作

编写人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)等属性,通过对Person类的继承得到教师类(Teacher),该类能够存放教师的职称、学历、工资、奖金等信息,并能计算出总收入(工资+奖金)。

‎提示:编写Person类及定义基本属性;Teacher类先继承并定义其他属性类,并包含输出所有信息输出方法及总收入计算方法(工资+奖金)并输出将结果;最后实列化一名教师信息,调用信息输出方法及总收入计算方法输出结果

  • 以下回答由chatgpt基于相关博客总结生成:
    # 定义Person类,包含姓名、年龄、性别属性
    class Person:
        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender
    
        def get_info(self):
            # 输出姓名、年龄、性别信息
            print(f"Name: {self.name}, Age: {self.age}, Gender: {self.gender}")
    
    # 定义Teacher类,继承自Person类,包含职称、学历、工资、奖金属性
    class Teacher(Person):
        def __init__(self, name, age, gender, title, degree, salary, bonus):
            super().__init__(name, age, gender)
            self.title = title
            self.degree = degree
            self.salary = salary
            self.bonus = bonus
    
        def calc_total_income(self):
            # 计算总收入(工资+奖金)
            return self.salary + self.bonus
    
        def get_info(self):
            # 调用父类方法输出姓名、年龄、性别信息,再输出职称、学历、工资、奖金信息
            super().get_info()
            print(f"Title: {self.title}, Degree: {self.degree}, Salary: {self.salary}, Bonus: {self.bonus}")
    
    # 实例化一名教师信息,并调用信息输出方法及总收入计算方法
    teacher1 = Teacher("Tom", 35, "Male", "Professor", "PhD", 6000, 2000)
    teacher1.get_info()
    print(f"Total Income: {teacher1.calc_total_income()}")
    

    输出结果如下:

    Name: Tom, Age: 35, Gender: Male
    Title: Professor, Degree: PhD, Salary: 6000, Bonus: 2000
    Total Income: 8000
    
 class Person:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

class Teacher(Person):
    def __init__(self, name, age, sex, title, education, salary, bonus):
        super().__init__(name, age, sex)
        self.title = title
        self.education = education
        self.salary = salary
        self.bonus = bonus

    def calculate_total_income(self):
        total_income = self.salary + self.bonus
        return total_income

    def display_information(self):
        print("姓名:", self.name)
        print("年龄:", self.age)
        print("性别:", self.sex)
        print("职称:", self.title)
        print("学历:", self.education)
        print("工资:", self.salary)
        print("奖金:", self.bonus)

teacher = Teacher("tom", 35, "男", "校长", "博士", 5000, 2000)

teacher.display_information()

total_income = teacher.calculate_total_income()
print("总收入:", total_income)