super() в классах Python

При знакомстве с фреймворком PyQt5, я заметил, что в функцию super() еще и записывают параметры.

Я не могу понять, зачем и почему, и что это дает?

Пример:

class Example(QWidget):
   def __init__(self):
      super(Example, self).__init__() 

Ответы (1 шт):

Автор решения: S. Nick

PyQt5 здесь ни при чем.

Один из способов, которым Python достигает парадигмы объектно-ориентированную программирования,
этого — поддержка наследования, что он делает с помощью super().

class Example(QWidget):
   def __init__(self):
      super(Example, self).__init__() 

В Python 3 вызов super(Example, self) эквивалентен вызову super() без параметров.

super() может принимать два параметра:

  • первый параметр является подклассом,
  • а второй параметр является объектом, который является экземпляром этого подкласса.
→ Ссылка