Почему явный Parent.__init__(self) не рекомендуется в множественном наследовании Python по сравнению с super()? [дубликаPython

Программы на Python
Ответить
Anonymous
 Почему явный Parent.__init__(self) не рекомендуется в множественном наследовании Python по сравнению с super()? [дублика

Сообщение Anonymous »

Тело: Я изучаю множественное наследование в Python. В моем коде я инициализирую родительские классы, вызывая их явно по имени, например:
Я читал, что мне следует использовать super(), но когда я использую super(), кажется, что вызывается только первый родительский класс (Parent1).
  • Выполняет явный вызов (Parent1.__init__) нарушает порядок разрешения методов (MRO)?
  • Как правильно использовать super() для инициализации обоих родительских элементов при множественном наследовании?
[class Parent1:
def __init__(self, money):
self.parent1money = money
print("Parent1 init")

class Parent2:
def __init__(self, name):
self.parent2name = name
print("Parent2 init")

class Child(Parent1, Parent2):
def __init__(self, money, name):
# I am calling parents explicitly
Parent1.__init__(self, money)
Parent2.__init__(self, name)

obj = Child(1000, "test")]


Подробнее здесь: https://stackoverflow.com/questions/798 ... nheritance
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»