12.3 类的组合

12.3 类的组合

  • 把对象当做变量值来用,当做形参/实参/返回值
  • 类似于:把函数作为参数,作为返回值。
#简单的选课系统
#父类
class People:
    def __init__(self,name,gender):
        self.name=name
        self.gender=gender
    def eat(self):
        print(f'{self.name}吃饭')

#子类:学生类
class Student(People):
    def __init__(self,student_id,name,gender):
        self.student_id=student_id
        
        super().__init__(name,gender)
    def choose_course(self,course):
        self.course=course  #组合 :把对象当做变量值来用,当做形参/实参/返回值
        print(f'{self.name}选课{course.name}成功!')

#子类:老师类
class Teacher(People):
    def __init__(self,level,name,gender):
        self.level=level
        super().__init__(name,gender)
    def scored(self,student,score,course):
        print(f'{self.name}老师给{student.name}课程{course.name}打分为{score}')

#课程类
class Course:
    def __init__(self,name,price):
        self.name=name
        self.price=price

#管理员类
class Admin(People):
    def create_course(self,course_name,price):
        
        print(f'管理员{self.name}创建了课程{course_name}')
        return Course(course_name,price)


#课程实例化
python=Course('Python','888')
linux=Course('Linux','666')

#学生
coco=Student('01','coco','male')
mike=Student('02','mike','male')

#老师
Jane=Teacher('1','Jane','male')
tank=Teacher('2','tank','female')

#管理员
egan=Admin('egan','female')


#业务逻辑
#1.创建课程
python=egan.create_course('python','888')
linux=egan.create_course('linux','666')

#2.学生选择课程
coco.choose_course(python)

#3. 老师给学生打分
Jane.scored(coco,98,python)

管理员egan创建了课程python
管理员egan创建了课程linux
coco选课python成功!
Jane老师给coco课程python打分为98
posted @ 2025-09-08 19:46  bokebanla  阅读(13)  评论(0)    收藏  举报