For the case of the most basic multiple inheritance:
class A: def __init__(self, a): self.a = a class B: def __init__(self, b): self.b = b class C(A, B): def __init__(self, a, b): A.__init__(self, a) B.__init__(self, b)
I do not see why
super() should be used. I suppose you could implement it with kwargs, but that is surely less readable than the above method. I am yet to find any answers on stack overflow which are in favour of this method, yet surely for this case it is the most satisfactory?
There are a lot of questions marked as duplicate on this topic, but no satisfactory answers for this exact case. This question addresses multiple inheritance and the use of
super() for a diamond inheritance. In this case there is no diamond inheritance and neither parent class have any knowledge of each other, so they shouldn’t need to call
super() like this suggests.