Все время, которое я использовал:
SuperClass.__init__(self, *args, **kwargs)
Моя причина в том, что это явно показывает, какой суперкласс используется, особенно в случае множественного наследования.
Однако другие коды, с которыми я столкнулся, используют
super(MyClass, self).__init__(*args, **kwargs)
вместо.
Это может стать неоднозначным, если оно используется в:
class MyClass(SuperClass1, SuperClass2):
def __init__(self, *args, **kwargs):
super(MyClass, self).__init__(*args, **kwargs) #which SuperClass is being used?
Я хотел бы знать, почему эта форма призвания широко принята? Любое преимущество вообще?