組合就是一個對象具備一個屬性,這個屬性的指是另一個類的對象python
class Person: school = 'oldboy' class Teacher(Person): # 老師類在實例化的時候設置課程名,課程價格,課程週期 def __init__(self,name,age,level,course_name,course_price,course_period): self.name=name self.age=age self.level=level class Student(Person): # 學生類在實例化的時候設置課程名,課程價格,課程週期 def __init__(self,name,age,course,course_name,course_price,course_period): self.name=name self.age=age self.course=course
class Person: school = 'oldboy' class Teacher(Person): def __init__(self,name,age,level,course): self.name=name self.age=age self.level=level #course是課程對象,表示老師教授的課程 self.course=course class Student(Person): def __init__(self,name,age,course): self.name=name self.age=age # course是課程對象,表示學生選的課程 self.course = course class Course: # 把這個course類實例化事後,在實例化老師或者學生的時候,看成屬性的值傳遞給老師或學生的course屬性值 def __init__(self,course_name,course_price,course_period): self.name=course_name self.price=course_price self.period=course_period course=Course('Python',20180,7) # 實例化課程對象 stu=Student('nick',19,course) # 實例化學生對象:course是課程對象 teacher=Teacher('nick',19,'高級',course) # 實例化老師對象:course是課程對象 #查看老師教授的課程名 print(teacher.course.name)
pythonlinux
class Person: school = 'oldboy' class Teacher(Person): def __init__(self,name,age,level,course): self.name=name self.age=age self.level=level #course是課程對象,表示老師教授的課程 self.course=course class Student(Person): # course=[] #在這裏定義成course是了列表是錯誤的 def __init__(self,name,age): self.name=name self.age=age # course是課程對象,表示學生選的課程 self.course_list = [] def choose_course(self,course): # self.course=[] #錯誤 #把課程對象追加到學生選課的列表中 self.course_list.append(course) def tell_all_course(self): #循環學生選課列表,每次拿出一個課程對象 for course in self.course_list: #課程對象.name 取到課程名字 print(course.name) class Course: def __init__(self,course_name,course_price,course_period): self.name=course_name self.price=course_price self.period=course_period course=Course('Python',20199,7)# 實例化課程對象course stu1=Student('nick',19) # 實例化學生對象stu1 stu1.choose_course(course)# 調用stu1的選課綁定方法choose_course(course) # 把實例化的課程對象放到stu1的課程屬性列表裏 stu2=Student('王二丫',19)# 實例化stu2學生對象 stu2.choose_course(course)# 調用stu2的選課綁定方法choose_course(course) # 把實例化的課程對象放到stu2的課程屬性列表裏 stu2.choose_course(Course('linux',19999,5))