多继承父类构造方法的执行顺序

 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,是因为一个类一次只能实例化一个实例出来?

 

转载于:https://www.cnblogs.com/avention/p/8970054.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值