七. python面向对象(组合)

1.类的组合使用

# 组合就是 把小的功能组合成大的功能
# 例如: 这里是 把人这大个类   分成几个小类   进行组合类  从而形成了人
#
class Head(object):
         pass
#
class Foot(object):
         pass

# 躯干
class Trunk(object):
         pass

# 眼睛
class   eye(object):
         pass

# 组合就是 把小的功能组合成大的功能
# 例如: 这里是 把人这大个类   分成几个小类   进行组合类  从而形成了人

class Person:
    def __init__(self,name,id_a):
        self.name=name
        self.id_a=id_a
        self.head=Head()
        self.foot=Foot()
        self.trunk=Trunk()
        self.yes=eye()

a1=Person("张三","18号")
print(a1.__dict__)
# 'name': '张三', 'id_a': '18号', 'head': <__main__.Head object at 0x000002730B4CACC0>, 'foot': <__main__.Foot object at 0x000002730B4CACF8>, 'trunk': <__main__.Trunk object at 0x000002730B4CAD30>, 'yes': <__main__.eye object at 0x000002730B4CAD68>}
# 学校类
class School(object):
      def __init__(self,name,addr):
        self.name=name
        self.addr=addr
      def zhao_sheng(self):
            print('%s 正在招生'%self.name)

 # 课程
class Course(object):
    def __init__(self,name,price,period,school):
         self.name=name
         print(name)      #   英语
         self.price=price
         self.period=period
         self.school=school
         print(school.__dict__)   # {'name': '新东方', 'addr': '北京'}
         print(school.name)       #  新东方

# 实例化学校
a1=School("新东方","北京")
a2=School("希望","上海")
a3=School("万通","南京")

# 实例化课程
b1=Course("英语","200RMB","2小时",a1)

print(b1)  # <__main__.Course object at 0x00000228B3413D30>
# 学校类
class School(object):

    def __init__(self ,name ,addr):
        self.name =name
        self.addr =addr
    def zhao_sheng(self):
        print('%s 正在招生 ' %self.name)

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

# 实例化学校
a1 =School("新东方" ,"北京")
a2 =School("希望" ,"上海")
a3 =School("万通" ,"南京")

menu ={

    '1' :a1,
    '2' :a2,
    '3' :a3
}

while  True:
    aa =input('选择学校>>:')
    bb =menu[aa]
    name =input('课程名>>:')

    price =input('课程费用>>:')
    period =input('课程名周期>>:')

    new_Course =Course(name ,price ,period ,bb)
    print('课程[%s]属于[%s]学校 ' %(new_Course.name ,new_Course.school.name))
# 用low (列表) 比来解决关联组合方法




# 学校类
class School(object):
    def __init__(self ,name ,addr):
        self.name =name
        self.addr =addr
        self.course_list =[]

    def zhao_sheng(self):
        print('%s 正在招生 ' %self.name)


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



# 实例化学校
a1 =School("新东方" ,"北京")
a2 =School("希望" ,"上海")
a3 =School("万通" ,"南京")

# 实例化课程
b1 =Course("英语" ,"200RMB" ,"2小时")
b2 =Course("python" ,"1000RMB" ,"6小时")

a1.course_list.append(b1)
a1.course_list.append(b2)

# print(a1.__dict__)                  # {'name': '新东方', 'addr': '北京', 'course_list': [<__main__.Course object at 0x0000025EC841ADA0>]}
for  i in a1.course_list:
    print(i.name ,i.price)

# 英语 200RMB
# python 1000RMB

猜你喜欢

转载自www.cnblogs.com/Sup-to/p/10884334.html