我知道这已经讨论过很多次了,但从来没有解释过“幕后”发生了什么。
任何人都可以详细解释为什么在最后一行代码中注释会导致引发错误吗?我知道那个 object.__init__ 不带任何参数,但是为什么在注释掉该行时代码可以工作?
class A:
def __init__(self, a):
print("A constructor")
super().__init__(a)
self.a = a
print("A constructor end")
class B:
def __init__(self, b):
print("B constructor")
super().__init__()
self.b = b
print("B constructor end")
class C(A, B):
def __init__(self, x):
super().__init__(x)
c = C(42)
#a = A(33)