【1.102】面向对象-组合

看看简单的组合

class Hand:
    pass

class Foot:
    pass

class Trunk:
    pass

class Head:
    pass

class Person:
    def __init__(self,id_num,name):
        self.id_num=id_num
        self.name=name
        self.hand=Hand()
        self.foot=Foot()
        self.trunk=Trunk()
        self.head=Head()
p1=Person('111111','alex')

print(p1.__dict__)
# {'id_num': '111111', 'name': 'alex', 'hand': <__main__.Hand object at 0x0000000002205860>, 'foot': <__main__.Foot object at 0x0000000002205898>, 'trunk': <__main__.Trunk object at 0x00000000022058D0>, 'head': <__main__.Head object at 0x0000000002205908>}

上面的代码就是一个组合  就是将手 脚  躯干 头 都组合在一个人当中

 

 

1、组合- 思维练习  创建学习类 还有 课程类

2、这里的练习是在创建课程系统 然后直接展示出来

3、通过在课程里面添加学校的信息    意思就是 哪门课程在哪个学校

class School:
    def __init__(self,name,addr):
        self.name = name
        self.addr = addr
    def recruit_stu(self):
        print("%s - %s 校区正在招生"%(self.name,self.addr))
s1 = School("川大","望江")
s2 = School("川大","江安")
s3 = School("川大","华西")class Course:
    def __init__(self,name,price,academic,school):
        self.name = name
        self.price = price
        self.academic = academic
        self.school = school
        # self.teacher = teacher

# c1 = Course("MBA",100,"2年",)
# c2 = Course("牙科",70,"7年")
# c1 = Course("计算机",50,"4年")

while True:
    menu = '''
    1 : 川大望江
    2 : 川大江安
    3 : 川大华西
    '''
    print(menu)
    menu = {
        "1":s1,
        "2":s2,
        "3":s3
    }
    chioce = input("请选择学校:")
    school = menu[chioce]
    course_name = input("课程名》》:")
    course_price = input("课程学费》》:")
    course_academic = input("学制》》:")
    new_courese = Course(course_name,course_price,course_academic,school)
    school.recruit_stu()
    #print("川大江安开设的计算机课程,是一个38岁的叫李娜的女老师在授课,其学费是50万,学制是4年,欢迎填报")
    print("%s-%s校区开设的%s课程,"
          "是一个38岁的叫李娜的女老师在授课,"
          "其学费是%s万,学制是%s年,欢迎填报"
          %(school.name,school.addr,course_name,course_price,course_academic))
class School:
    def __init__(self,name,addr):
        self.name = name
        self.addr = addr
    def recruit_stu(self):
        print("%s - %s 校区正在招生"%(self.name,self.addr))
s1 = School("川大","望江")
s2 = School("川大","江安")
s3 = School("川大","华西")


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

    def running(self):
        print("%s 目前%s岁,是一个%s老师,正在跑步" % (self.name, self.age, self.sex))


# t1 = Teacher("姚明", 38, "男")
# t2 = Teacher("刘翔", 52, "男")
# t3 = Teacher("李娜", 45, "女")


class Course:
    def __init__(self,name,price,academic,school):
        self.name = name
        self.price = price
        self.academic = academic
        self.school = school
        # self.teacher = teacher

# c1 = Course("MBA",100,"2年",)
# c2 = Course("牙科",70,"7年")
# c1 = Course("计算机",50,"4年")

while True:
    menu = '''
    1 : 川大望江
    2 : 川大江安
    3:川大华西
    '''
    print(menu)
    menu = {
        "1":s1,
        "2":s2,
        "3":s3
    }
    chioce = input("请选择学校:")
    school = menu[chioce]
    course_name = input("课程名》》:")
    course_price = input("课程学费》》:")
    course_academic = input("学制》》:")
    new_courese = Course(course_name,course_price,course_academic,school)
    school.recruit_stu()
    #print("川大江安开设的计算机课程,是一个38岁的叫李娜的女老师在授课,其学费是50万,学制是4年,欢迎填报")
    print("%s-%s校区开设的%s课程,"
          "是一个38岁的叫李娜的女老师在授课,"
          "其学费是%s万,学制是%s年,欢迎填报"
          %(school.name,school.addr,course_name,course_price,course_academic))
练习组合

 

posted @ 2016-05-10 14:32  科学小怪癖  阅读(93)  评论(0)    收藏  举报