@jofumi

Что есть переопределение, расширение, перегрузка в Python?

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

Это если дотошно разбираться. А вообще, читайте документацию на английском, вопросов к переводчикам станет меньше.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы