В Python 2.7 и 3 я использую следующий метод для вызова функции суперкласса:
class C(B):
def __init__(self):
B.__init__(self)
Я также вижу, что можно заменить B.__init__(self) на super(B, self).__init__() и в python3 super().__init__().
Есть ли какие-либо преимущества или недостатки в этом? Имеет смысл называть его от B напрямую для меня, по крайней мере, но, возможно, есть веская причина, по которой super() можно использовать только при использовании метаклассов (чего я обычно избегаю).