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