VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • python 多继承详解

1
2
3
4
5
6
7
8
9
10
class A(object):   # A must be new-style class
   def __init__(self):
    print "enter A"
    print "leave A"
 
class B(C):    # A --> C
   def __init__(self):
    print "enter B"
    super(B,self).__init__()
    print "leave B"
在我们的印象中,对于super(B, self).__init__()是这样理解的:super(B, self)首先找到B的父类(就是类A),然后把类B的对象self转换为类A的对象,然后“被转换”的类A对象调用自己的__init__函数。

有一天某同事设计了一个相对复杂的类体系结构(我们先不要管这个类体系设计得是否合理,仅把这个例子作为一个题目来研究就好),代码如下

代码段4:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class A(object):
    def __init__(self):
        print "enter A"
        print "leave A"
 
class B(object):
    def __init__(self):
        print "enter B"
        print "leave B"
 
class C(A):
    def __init__(self):
        print "enter C"
        super(C, self).__init__()
        print "leave C"
 
class D(A):
    def __init__(self):
        print "enter D"
        super(D, self).__init__()
        print "leave D"
        class E(B, C):
        def __init__(self):
        print "enter E"
        B.__init__(self)
        C.__init__(self)
        print "leave E"
 
class F(E, D):
    def __init__(self):
        print "enter F"
        E.__init__(self)
        D.__init__(self)
        print "leave F"

相关教程