定义一个人的类,人有头,躯干,手,脚等数据属性,这几个属性又可以是通过一个类实例化的对象,这就是组合
用途:
1:做关联
2:小的组成大的
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(‘11111‘,‘张三‘) # print(p1.__dict__) class School: def __init__(self,name,addr): self.name=name self.addr=addr class Course: def __init__(self,name,price,period,school): self.name=name self.price=price self.period=period self.school=school s1=School(‘刘家小学‘,‘北京‘) s2=School(‘刘家小学‘,‘南京‘) s3=School(‘刘家小学‘,‘东京‘) #c1=Course(‘linux‘,10,‘1h‘,‘刘家小学‘)无意义 c1=Course(‘linux‘,10,‘1h‘,s1) print(c1.school) #<__main__.School object at 0x0000000002878508> print(c1.school.name) #刘家小学
class School: def __init__(self,name,addr): self.name=name self.addr=addr class Course: def __init__(self,name,price,period,school): self.name=name self.price=price self.period=period self.school=school s1=School(‘刘家小学‘,‘北京‘) s2=School(‘刘家小学‘,‘南京‘) s3=School(‘刘家小学‘,‘东京‘) #c1=Course(‘linux‘,10,‘1h‘,‘刘家小学‘)无意义 # c1=Course(‘linux‘,10,‘1h‘,s1) # print(c1.school) #<__main__.School object at 0x0000000002878508> # print(c1.school.name) #刘家小学 msg=‘‘‘ 1.刘家小学 北京 2.刘家小学 南京 3.刘家小学 东京 ‘‘‘ while True: print(msg) menu={ ‘1‘:s1, ‘2‘:s2, ‘3‘:s3 } choice=input(‘选择学校>>>‘) school_obj=menu[choice] name=input(‘课程名:‘) price= input(‘课程费用:‘) period=input(‘课程时间‘) new_coures=Course(name,price,period,school_obj) print(‘课程[%s] 属于【%s】学习,在【%s】‘ %(new_coures.name,new_coures.school.name,new_coures.school.addr)) # 1.刘家小学 北京 # 2.刘家小学 南京 # 3.刘家小学 东京 # # 选择学校>>>3 # 课程名:学茶道 # 课程费用:30 # 课程时间2H
原文:https://www.cnblogs.com/kangming-/p/12067365.html