章XIの組成物などのオブジェクト指向

章XIの組成物などのオブジェクト指向

まず、の組み合わせは何ですか

オブジェクトクラスの組み合わせは、単一のプロパティが含まれており、この属性の値は、クラスの他の目的であります

第二に、なぜの組み合わせを使用

  • 冗長コードの組み合わせは、クラスとクラスの間の問題を解決するために使用されています

  • 要件:私たちが学生にプロパティのコースを追加する必要があるが、それは学生が選出された少年の後に生徒に学校のカリキュラムのプロパティ、プロパティのコースに入ったすべての古い少年ではない場合、それは後者のコースは、学生がそれに追加要求すると言うことです

  • アイデアの実現:私たちは学生のカリキュラムで直接プロパティを追加した場合、その後、学生は私たちの要件を満たしていないだけで定義されてプロパティを、コースを追加する必要がありますので、私たちは、特性の組合せがコースに学生を可能に追加するために、将来的に使用することができます

  • class People():
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
    class Student(People):
        def __init__(self,name,age):
            self.course_list=[]
            super().__init__(name,age)
    
        def choose_course(self,course):
            self.course_list.append(course)
    
    class Course():
        def __init__(self,course_name,course_price):
            self.name=course_name
            self.price=course_price
    
    course=Course('语文',20000)#先给生成的course对象赋值
    student1=Student('ypp',18)#生成一个学生对象
    student1.choose_course(course)#把course对象传到student的choose_course()方法
    
    for course in student1.course_list:
        print(course.name)
    print(student1.__dict__)
    ---------------------------------------------------
    语文
    ------------------------------------------------
    {'course_list': [<__main__.Course object at 0x0000016A4928EE48>], 'name': 'ypp', 'age': 18}
    #可见student1参数可以存放对象

おすすめ

転載: www.cnblogs.com/demiao/p/11425611.html