zoukankan      html  css  js  c++  java
  • 多继承父类构造方法的执行顺序

     1 class a:
     2     def __init__(self):
     3         print('a')
     4 
     5 class b(a):
     6     def __init__(self):
     7         super().__init__()
     8         print('b')
     9 
    10 class c(a):
    11     def __init__(self):
    12         super().__init__()
    13         print('c')
    14 
    15 
    16 class d(b,c):
    17     pass
    18 
    19 mm=d()
    20 '''
    21 a
    22 c
    23 b
    24 '''
    25 
    26 #分析出现这种现象
    27 #继承后只有一份构造函数的代码,后面的会覆盖前面的。即c的构造函数会覆盖b的
    28 
    29 print('=' * 30)
    30 
    31 class a:
    32     def __init__(self):
    33         print('a')
    34 
    35 class b(a):
    36     def __init__(self):                      #2
    37         super().__init__()                   #2
    38         print('b')
    39 
    40 class c(a):
    41     def __init__(self):                        #3
    42         super().__init__()                     #3
    43         print('c')                             #3
    44 
    45 class e(b):
    46     def __init__(self):
    47         super().__init__()
    48         print('e')
    49 
    50 class d(e,c):
    51     pass
    52 
    53 ddd = d()
    54 
    55 '''
    56 a
    57 c
    58 b
    59 e
    60 '''
    61 
    62 #第一个例子中 b和c的基类都是 a
    63 #第二个例子中 e和c的基类不同了,但e的基类是b,b和c的基类都是 a ,e类实例化时没有继续往上实例化到a,是因为一个类一次只能实例化一个实例出来?
  • 相关阅读:
    js的包装对象
    js-原型
    js面向对象初识
    css3-3d
    用css制作三角形
    清浮动
    IE67下浮动元素margin-bottom值失效问题
    css圆角
    Use Memory Layout from Target Dialog Scatter File
    Qt QSting
  • 原文地址:https://www.cnblogs.com/avention/p/8970054.html
Copyright © 2011-2022 走看看