Я знаю, что это обсуждалось несколько раз раньше, но никогда не было объяснений, что происходит «под капотом».super() странность в Python 3
Может ли кто-нибудь дать подробное объяснение того, почему комментирование в последней строке кода вызывает ошибку? Я знаю, что этот объект .__ 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)