Зачем в классе-наследнике вызывать инициализацию класса-родителя в Python? Читаю про PyQt5, на сайте увидел такой код:import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QIcon
class Example(QWidget): def __init__(self): super().__init__() self.initUI()
if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) Непонятна строкаsuper().__init__() Зачем мы в классе Example вызываем инициализацию класса QWidget? Что это нам дает? Мы же при простом наследовании (при объявлении класса Example в скобках указали класс QWidget) уже унаследовали все свойства и методы или нет?
Вы вызываете инициализацию класса-родителя с помощью super().__init__() для того, чтобы все методы и атрибуты, определенные в классе-родителе, были также доступны в классе-наследнике.
Хотя при объявлении класса Example в скобках вы указали унаследование от класса QWidget, вызов метода super().__init__() позволяет настроить объект в соответствии с общими установками класса-родителя (например, настройка размера и заголовка окна, установка иконки).
Поэтому в данном случае вызов инициализации класса-родителя является хорошей практикой, чтобы убедиться, что работа с классом-наследником будет правильной и корректной.
Вы вызываете инициализацию класса-родителя с помощью super().__init__() для того, чтобы все методы и атрибуты, определенные в классе-родителе, были также доступны в классе-наследнике.
Хотя при объявлении класса Example в скобках вы указали унаследование от класса QWidget, вызов метода super().__init__() позволяет настроить объект в соответствии с общими установками класса-родителя (например, настройка размера и заголовка окна, установка иконки).
Поэтому в данном случае вызов инициализации класса-родителя является хорошей практикой, чтобы убедиться, что работа с классом-наследником будет правильной и корректной.