类的组合 多继承调用示例

Posted flags-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的组合 多继承调用示例相关的知识,希望对你有一定的参考价值。

类的组合

 1 class Foo1(object):
 2     def __init__(self, name):
 3         self.name1 = name
 4     def get_name(self):
 5         print("my name is %s"%self.name1)
 6 
 7 class Foo2(object):
 8     def __init__(self, name):
 9         self.name2 = name
10 
11 class Foo3(object):
12     def __init__(self, name):
13         self.name3 = name
14 obj1 = Foo1(zsq)
15 obj2 = Foo2(obj1)
16 obj3 = Foo3(obj2)
17 #使用obj3输出zsq;self.name3 == obj2 && obj2.name2 == obj1 --> self.name3.name2 == obj1 && obj1.name1 == zsq -->  self.name3.name2.name1 == ‘zsq‘
18 obj3.name3.name2.get_name()

 

类的多级继承访问关系

 1 class Foo4(object):
 2     def __init__(self):
 3         print(Foo4)
 4     def a1(self):
 5         print("Foo4a1")
 6     def a2(self):
 7         print("Foo4a2")
 8 class Foo5(Foo4):
 9     def __init__(self):
10         print(Foo5)
11     def a1(self):
12         self.a2()
13         print("Foo5a1")
14     def a2(self):
15         print("Foo5a2")
16 class Foo6(Foo5):
17     def __init__(self):
18         print(Foo6)
19     def a2(self):
20         print("Foo6a2")
21 obj6 = Foo6() #Foo构造函数输出 Foo6
22 obj6.a1()
23 #Foo6a2 Foo5a1;Foo6.a1继承自Foo5,Foo5.a1第一步调用self.a2;此时self为obj6是Foo6的对象,首先在Foo6中查找a2方法,输出Foo6a2
24 #继续向西执行Foo5.a1下一行的print语句输出Foo5a1

 

以上是关于类的组合 多继承调用示例的主要内容,如果未能解决你的问题,请参考以下文章

继承和组合混搭的情况下,构造和析构函数的调用顺序

面向对象之继承与派生

类的继承和重用

Day17:类的继承派生组合和接口

第二十六天 组合 封装 多态

Python高级语法-多继承MRO相关-多继承顺序(4.5.1)