@Ben_r007

Где использовать super?

Здравствуйте.
Знаю и понимаю, что такое MRO.
Но не понимаю, что такое super.
Понимаю, что super нужен, если в конструкторе мы хотим вызвать конструктор родителя.
Но ведь не только конструктор можно вызвать через super...
Из этого вопрос.
Зачем нужен super, и где это использовать?
Заранее благодарен!
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
С помощью super() можно вызывать любые родительские методы, не только конструктор.
Кстати, __init__ -- это не конструктор, строго говоря. Он не создаёт инстанс. Инстанс создаётся в __new__, это и есть, фектически, конструктор. А __init__ -- это инициализация. Хотя в общем-то всем пофиг и конструктором его тоже все называют. Для простоты.

В питоне есть множественное наследование. super создаёт прокси-объект с интерфейсом к предкам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы