Есть ли способ использовать super () для вызова метода __init__ каждого базового класса в Python?

Предположим, у меня есть код Python:

class Mother: def __init__(self): print("Mother") class Father: def __init__(self): print("Father") class Daughter(Mother, Father): def __init__(self): print("Daughter") super().__init__() d = Daughter() 

Этот сценарий печатает «Дочь». Есть ли способ гарантировать, что все методы __init__ классов классов называются? Один из методов, который я придумал, заключался в следующем:

 class Daughter(Mother, Father): def __init__(self): print("Daughter") for base in type(self).__bases__: base.__init__(self) 

Этот сценарий печатает «Дочь», «Мать», «Отец». Есть ли хороший способ сделать это, используя super () или другой метод?

One Solution collect form web for “Есть ли способ использовать super () для вызова метода __init__ каждого базового класса в Python?”

Раймонд Хеттингер объяснил это очень хорошо в своем выступлении Super Super Supered от PyCon 2015. Короткий ответ: да, если вы это разработаете, и вызовите super().__init__() в каждом классе

 class Mother: def __init__(self): super().__init__() print("Mother") class Father: def __init__(self): super().__init__() print("Father") class Daughter(Mother, Father): def __init__(self): super().__init__() print("Daughter") 

Имя super неудачно, оно действительно пробивается через базовые классы.

  • Python не может установить PyGObject
  • Распаковка, расширенная распаковка и вложенная расширенная распаковка
  • Объединить поля PySpark DataFrame ArrayType в одно поле ArrayType
  • Генерация итеративной функции в Python
  • Не удается открыть Python. Ошибка 0xc000007b
  • Python3.4 о Sublime Text 3
  • Как я могу реализовать дерево в Python? Есть ли встроенные структуры данных в Python, как в Java?
  • Почему в кусочках python допускаются встроенные встроенные типы?
  •  
    Interesting Posts for Van-Lav

    Как получить доступ к свойствам суперклассов Python, например, через __class __.__ dict__?

    Сортировка 2D-списка python

    Почему PyYAML использует генераторы для создания объектов?

    Как хранить значения счета в python

    Как сопоставить сегодняшнюю дату в фрейме данных и отправлять сообщения электронной почты

    Как я могу изменить текст кнопки, от текста до пустого имени с задержкой?

    Численная сумма между парами индексов в массиве 2d

    webapp2, Jinja2: как вырезать большой html-файл в несколько html-файлов

    Как форма столбца таблицы pytables определяется переменной?

    Как создать видео эскизы с Python и Gstreamer

    Как избежать печати научной нотации в python без добавления дополнительных цифр?

    Bokeh hover tooltip не отображает все данные – ноутбук Ipython

    PyAudio IOError: нет устройства ввода по умолчанию

    Может установить любое свойство объекта Python

    Lambdas из понимания списка возвращает лямбду при вызове

    Python - лучший язык программирования в мире.