首页 > 其他 > 详细

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

时间:2018-04-29 00:43:46      阅读:220      评论:0      收藏:0      [点我收藏+]
 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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!