Что есть переопределение, расширение, перегрузка в Python?
Собственно вопрос терминологии, многие в разных инструкциях, уроках, гайдах и т.д. называют всё это дело кому как нравится... Но что есть что правильно? Вот допустим:
1. Есть класс с методом, я наследуюсь от этого класса, называю метод также в новом классе, получается я переопределил метод?
2. Есть класс, в нем называю метод специальным именем __add__, реализовываю. Этот метод - реализация оператора "+", который не только с объектами моего класса работает, получается я перегрузил(!) оператор(!) "+"?
3. Если я сделаю то же самое с __init__ - я его уже переопределю?
4. Есть класс с методом, я наследуюсь от этого класса, называю метод также в новом классе, в реализации пишу super().method() - я расширил метод? ведь запустится метод из "следующего в ряду супер" и потом моя реализация.
5. Можно ли именно перегрузить методы?
П.С. в java имел дело с перегрузкой методов, ведь там строгая типизация и это бывает полезно, а в Python - динамическая, еще и функции делаются с переменным количеством аргументов поддерживаются...
longclaps, то утверждение, которое вы написали, я понимал еще до того, как начал писать тот вопрос. А вопрос был другим. Та информация, которую я нашел в интернете скорее подтверждает мое предположение, но как-то я не разбирал этот момент дотошно. Главное, что mutable нужно использовать очень аккуратно.
Перегрузки в питоне нет. Пример.
Переопределения (redefinition) в питоне тоже нет
Расширения (extensions) в питоне есть, но совершенно не те что в вопросе.
Это если дотошно разбираться. А вообще, читайте документацию на английском, вопросов к переводчикам станет меньше.
Переопределение я как Override имел ввиду. По поводу расширений - в некоторых яп есть такая особенность, что в наследуемом классе, когда определяешь метод, определенный у родителя, то вызывается сначала метод родителя, потом реализация наследника и называется все это расширением. В некоторых обучающих материалах по питону в сети проскакивало это слово, но вот как-то не понимал, правильно ли его используют... скорее всего нет. В общем по хорошей части - это проблемы перевода. По другой я в принципе получил подтверждение, о чём думал. Надо будет собраться и прочить этот faq. Спасибо.