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,是因为一个类一次只能实例化一个实例出来?
  • 相关阅读:
    架构漫谈-阅读笔记(一)
    一线架构师实践指南--总结
    周四进度二
    质量属性改进
    结对作业第一次
    软件工程(2019)第三次作业
    软件工程(2019)第二次作业
    MarkDown编辑方法网址
    软件工程(2019年)第一次作业
    本人的coding地址
  • 原文地址:https://www.cnblogs.com/avention/p/8970054.html
Copyright © 2011-2022 走看看