目錄python
對象的某個屬性是另一個類的對象,就是一個類的對象具有某一個屬性,該屬性的值是指向另一個類的對象app
class Foo: def __init__(self,bar): self.bar = bar class Bar: pass bar = Bar() f = Foo(bar)
能夠減小代碼的冗餘函數
class Person: school = 'oldbody' 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: def __init__(self,course_name,course_price,course_period): self.name = course_name self.price = course_price self.period = course_period course = Course('python',20189,7) stu = Student('chen',19,course) teacher = Teacher('chen',19,'高級',course) print(teacher.course.name)
class Person: school = 'oldbody' class Teacher(Person): def __init__(self,name,age,level,course): self.name = name self.age = age self.level = level self.course = course class Stundent(Person): def __init__(self,name,age): self.name = name self.age = age self.course_list = [] def choose_course(self,course): #把課程對象追加到學生選課的列表中 self.course_list.append(course) def tell_all_course(self): #循環學生選課列表,每次拿出一個課程對象 for course in self.course_list: print(course.name) class Course: def __init__(self,course_name,cour_price,cour_peroid): self.name = course_name self.price = cour_price self.period = cour_peroid course = Course('python',201999,7) stu1 = Stundent('nick',18) stu1.choose_course(course) stu2 = Stundent('chen',19) stu2.choose_course(course) stu2.choose_course(Course('linx',19999,5)) # 查看stu1選擇的全部課程名稱 #方式一(經過普通函數) def tell_all_course(student): for course in student.course_list: print(course.name) tell_all_course(stu1) # python
#方式二(經過對象的綁定方法) stu2.tell_all_course() # python linx
組合能夠理解成多我的去造一個機器人,有的人造頭、有的人造腳、有的人造手、有的人造軀幹,你們都完工後,造軀幹的人把頭、腳、手拼接到本身的軀幹上,所以一個機器人便造出來了code