目录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