面向对象编程实例,函数,类的继承

2024-01-02 17:57:33
# 定义一个学生类
# 要求:
# 1.属性包括学生,学号以及语数英三科的成绩
# 2.能够设置学生某科目的成绩
# 3.能够打印该学生的所有科目的成绩

class Student:
    def __init__(self, name, student_id):
        self.name = name
        self.student_id = student_id
        self.grades = {"语文": 0, "数学": 0, "英语": 0}

    # 设置学生某科目的成绩
    def set_grade(self, course, grade):
        if(course in self.grades):
            self.grades[course] = grade

    # 打印该学生的所有科目的成绩
    def print_grades(self):
        print(f"学生{self.name},学号{self.student_id}的成绩是:")
        for course, grade in self.grades.items():
            print(course, grade)

guang = Student("小光", "10086")
print(guang.name), print(guang.student_id)
guang.set_grade("语文", 95)
guang.set_grade("数学", 92)
guang.set_grade("英语", 98)

guang.print_grades()

//类的继承:

?类紧接着加一个括号,括号里又是一个类名,表示定义的这个类是括号里的这个类的子类,括号里的类是父类

# super()方法继承父类的构造函数

# 类继承练习:人力系统
# 员工分为两类:全职员工FullTimeEmployee、兼职员工PartTimeEmployee。
# 全职和兼职都有"姓名name"、"工号id"属性,
# 都具备"打印信息print_info”(打印姓名、工号)方法。
# 全职有"月薪monthly_salary"属性,
# 兼职有"日薪daily_salary"属性、"每月工作天数work_days"的属性。
# 全职和兼职都有"计算月薪calculate_monthly_pay"的方法,但具体计算过程不一样。

# 父类
class employee:
    def __init__(self, name, id):
        self.name = name
        self.id = id

    def print_info(self):
        print(f"姓名:{self.name}, 工号:{self.id}")

# 类紧接着加一个括号,括号里又是一个类名,表示定义的这个类是括号里的这个类的子类,括号里的类是父类
class FullTimeEmployee(employee):
    def __init__(self, name, id, monthly_salary):
        # super()方法继承父类的构造函数
        super().__init__(name, id) 
        self.monthly_salary = monthly_salary

    def calculate_monthly_pay(self):
        return self.monthly_salary

class PartTimeEmployee(employee):
    def __init__(self, name, id, daily_salary, work_days):
        # super()方法继承父类的构造函数
        super().__init__(name, id)
        self.daily_salary = daily_salary
        self.work_days = work_days

    def calculate_monthly_pay(self):
        return self.work_days * self.daily_salary


ming = FullTimeEmployee("小明", "10000", 12000)
hua = PartTimeEmployee("小华", "10001", 350, 20)

ming.print_info()
hua.print_info()

print(ming.name, " 工号为:", ming.id, " 工资为:", ming.calculate_monthly_pay())
print(hua.name, "工号为:", hua.id, " 工资为:", hua.calculate_monthly_pay())

?

文章来源:https://blog.csdn.net/qq_51825761/article/details/135343724
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。