Всем здравствуйте, в этой статье я расскажу то, что знаю об ООП в Python и JavaScript.
Насчёт того что такое ООП я писать не буду, можете почитать тут.
Как создаются классы в Python и JavaScript?
Так создаётся класс в Python (Названия классов, методов и прочего может быть любым, если это не встроенные методы) :
В JavaScript:
Видим, что отличие в создании класса пока что только в фигурных скобках, которые есть у JavaScript. На самом деле, отличий намного больше.
Как создать объект?
В JavaScript есть и другие способы создания объектов и добавления к ним свойств. Но рассмотрим эти примеры.
Python:
В JavaScript:
Здесь видим отличия только в объявлении переменной, ключевого слова new, которое нужно для создания Объекта в JavaScript. В Python всё очень просто.
МЕТОД-КОНСТРУКТОР, КОТОРЫЙ ВЫЗЫВАЕТСЯ ВМЕСТЕ С ОБЪЕКТОМ.
В Python метод конструктор это init, в JavaScript - constructor.
Python:
В JavaScript же всё немного иначе:
Отличия: ключевые слова, которые означают сам объект - self и this. В JavaScript не нужно писать function, чтобы добавить функцию. Как создать объект с этими свойствами?
Python :
JS:
Как добавить функции в классы, которые потом можно вызвать?
После метода-конструктора можно создать ещё один метод, в который тоже можно принимать значения.
Python:
И в JS:
Вызов метода
Python:
JS:
ИНКАПСУЛЯЦИЯ
В Python доступ к приватным полям всё равно есть, а в JavaScript нет, там всё более строго. Приватные поля нельзя наследовать.
ИНКАПСУЛЯЦИИ В PYTHON:
ИНКАПСУЛЯЦИЯ В JAVASCRIPT:
Наследование классов
В Python Наследование очень очень просто, ну и в JavaScript оно не представляет особой сложности.
После того как класс унаследован, мы можем создавать объекты дочернего класса, которые имеют все свойства и методы родителя, плюс свои собственные.
В JavaScript:
Python:
Чтобы наследовать классы в JavaScript после названия дочернего класса пишется слово extends, а затем название родительского класса. В Python после названия дочернего класса открываются круглые скобки, в которые пишется название родительского класса. Функция super() в обоих вариантах нужна, чтобы получить данные, переменные из родительского класса, например super(height, weight). Здесь дочерний класс получает значения height и weight из родительского класса Banana. Также можно переопределять и на следовать методы родительского класса для этого пишем super().getInfo() в Python и super.getInfo(); в JavaScript.
Думаю, что на этом можно завершить. Это всё, что я хотел вам сказать о ООП в Python и JavaScript. На самом деле отличий очень много, можно погрузиться в эту тему, открыв документацию Python и JavaScript и сравнить самому. Или же почитать уже написанные другими людьми статьи на эти темы. Надеюсь, было понятно, желаю Вам рабочего кода! Всем большое спасибо за внимание, хорошего дня!