python面向对象组合

# 一。组合
# 1、什么是组合:
#     组合就是一个类的对象具备某一个属性,该属性的值是指向另外一个类的对象
#
# 2、为何用组合
#     组合也是用来解决类与类之间代码冗余问题的
#
# 3、如何用组合

# class OldboyPeople:#父类
#     school='oldboy'
#
#     def __init__(self,name,age,sex):
#         self.name=name
#         self.age=age
#         self.sex=sex
#
# class OldboyStudent(OldboyPeople):#继承父类
#     def __init__(self,name,age,sex,stu_id):
#         OldboyPeople.__init__(self,name,age,sex)#指明道姓的方式传值,无需继承
#         self.stu_id=stu_id
#     def choose_course(self):
#         print('%s is choosing course'%self.name)
#
# class OldboyTeather(OldboyPeople):
#
#     def __init__(self,name,age,sex,level):
#         OldboyPeople.__init__(self,name,age,sex)
#         self.level=level
#
#     def score(self,stu,num):#让学生与老师交互
#         stu.score=num#新建一个学生的信息
#         print('老师[%s]为学生[%s]打分[%s]'%(self.name,stu.name,num))
#
# stu1=OldboyStudent('猪哥',19,'male',1)
# teal=OldboyTeather('egon',18,'male',10)
# stu1.choose_course()
# teal.score(stu1,99)#将学生对象传值,进行交互
# print(stu1.score)


class Course:
    def __init__(self,name,period,price):#创建课程
        self.name=name
        self.period=period
        self.price=price
    def tell_info(self):#查看课程信息
        msg='''
        课程名:%s
        课程周期:%s
        课程价格:%s
        '''%(self.name,self.period,self.price)
        print(msg)

class OldboyPeople:
    school='oldboy'
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex

class Oldboystudent(OldboyPeople):
    def __init__(self,name,age,sex,stu_id):
        OldboyPeople.__init__(self,name,age,sex)
        self.stu_id=stu_id
    def choose_course(self):
        print('%s is choosing course'%self.name)

class OldboyTeather(OldboyPeople):
    def __init__(self,name,age,sex,level):
        OldboyPeople.__init__(self,name,age,sex)
        self.level=level

    def score(self,stu,num):
        stu.score=num
        print('老师[%s]为学生[%s]打分[%s]'%(self.name,stu.name,num))


# 创造课程
python=Course('python全栈开发','5mons',3000)
linux=Course('linux运维','5mons',8000)
python.tell_info()
linux.tell_info()

# 创造学生与老师
stu1=Oldboystudent('猪哥',19,'male',1)
teal=OldboyTeather('egon',18,'male',10)

# 将学生和老师与课程对象组合、关联
stu1.course=python#新建学生cousre的信息与课程组合
teal.course=linux#新建老师cousre的信息与课程组合

stu1.course.tell_info()#通过课程对象查看课程信息
teal.course.tell_info()#通过课程对象查看课程信息

猜你喜欢

转载自blog.csdn.net/qq_35540539/article/details/80836461
今日推荐