菱形继承的问题,
class A():def __init__(self):
print("进入A...")
print("进入N...")
print("离开A...")
class Q():
def __init__(self):
print("进入X...")
print("进入AS...")
print("离开AZ...")
class B(A,Q):
def __init__(self):
print("进入B...")
super().__init__()
print("离开B...")
print("进入E...")
想请教一下各位大神,这里这个继承为什么没有继承Q呢 因为继承多个类时,super优先调用继承在前的父类
你可以打印下__mro__看看顺序 看看这个帖子
我在这个帖子中回答的比较详细,
应该能解答你的疑惑 sunrise085 发表于 2020-4-3 16:42
看看这个帖子
我在这个帖子中回答的比较详细,
应该能解答你的疑惑
请问大佬,如果我要输出两个父类,是不是只能用A.__init__(self) Q.__init__(self)而不能用super呢 qiuyouzhi 发表于 2020-4-3 16:38
因为继承多个类时,super优先调用继承在前的父类
你可以打印下__mro__看看顺序
请问大佬,如果我要输出两个父类,是不是只能用A.__init__(self) Q.__init__(self)而不能用super呢 半夜起床不睡觉 发表于 2020-4-3 17:10
请问大佬,如果我要输出两个父类,是不是只能用A.__init__(self) Q.__init__(self)而不能用super呢
输出两个父类是什么意思? 半夜起床不睡觉 发表于 2020-4-3 17:11
请问大佬,如果我要输出两个父类,是不是只能用A.__init__(self) Q.__init__(self)而不能用super呢
这样指定去执行哪个是最方便的。
其实super还可以加参数的,在那个帖子中有比较详细的解释,我就不再敲一遍字了
那篇帖子有好几层楼都是具体的回答。
你可以看看我在那个帖子中3楼给出的例程 sunrise085 发表于 2020-4-3 17:24
这样指定去执行哪个是最方便的。
其实super还可以加参数的,在那个帖子中有比较详细的解释,我就不再 ...
好的,谢谢大佬
页:
[1]