我在测试中遇到了这个问题,我试图在这里对这件事的工作方式有一些了解,我敢肯定没有一个像这样的代码,只是为了我的理解和测试,鉴于此代码和子任务,要求我在其中添加一些注释。
a。如果我们注释#1#3
,输出将是什么b。 “”“”#2#3
c。 #1#4
d。 #1#4#5#9e。 #1#3#5#8#9#10
f。 #1#3#5#6#7#9
我也从不评论任何内容开始,似乎pass语句根本不改变任何内容(在它和任务a之间)
class A(object):
pass #1
def __init__(self): #2
print(" 1 ", end="") #2
class B(A):
pass #3
def __init__(self): #4
super().__init__() #4
print(" 2 ", end="") #4
class C(A):
def __init__(self):
super().__init__() #5
print(" 3 ", end="")
class D(C, B):
def __init__(self):
super().__init__() #6
A().__init__() #7
print(" 4 ", end="")
class E(D, A):
def __init__(self): #8
super().__init__() #9
print(" 5 ", end="") #10
e = E()
好吧,我想知道some1是否可以提供任何技巧/图形视图,以帮助您理解有关多重继承的事情
**我尝试调试它,并查看它每次跳转的位置,但我不明白,为什么它在A()上的类D上运行。 init ()两次? 以及super() init 对从对象继承的类进行的操作
因为如果我通过添加新的类来更改一点
class F(object):
def __init__(self):
super().__init__() # Comment and uncomment this
print(" F ", end="")
并使C类继承它C(F)
然后无论我是否在F中注释超行,输出都会改变 就像我评论时一样,当它返回D类时,它不会进入B类。