Зачем в классе-наследнике вызывать инициализацию класса-родителя в 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()

def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Icon')
self.setWindowIcon(QIcon('web.png'))

self.show()


if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
Непонятна строкаsuper().__init__()
Зачем мы в классе Example вызываем инициализацию класса QWidget? Что это нам дает? Мы же при простом наследовании (при объявлении класса Example в скобках указали класс QWidget) уже унаследовали все свойства и методы или нет?

21 Авг 2019 в 06:59
206 +1
1
Ответы
1

Вы вызываете инициализацию класса-родителя с помощью super().__init__() для того, чтобы все методы и атрибуты, определенные в классе-родителе, были также доступны в классе-наследнике.

Хотя при объявлении класса Example в скобках вы указали унаследование от класса QWidget, вызов метода super().__init__() позволяет настроить объект в соответствии с общими установками класса-родителя (например, настройка размера и заголовка окна, установка иконки).

Поэтому в данном случае вызов инициализации класса-родителя является хорошей практикой, чтобы убедиться, что работа с классом-наследником будет правильной и корректной.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир