В 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()
можно использовать только при использовании метаклассов (чего я обычно избегаю).