Найти в Дзене

ООП в Python и JavaScript

Всем здравствуйте, в этой статье я расскажу то, что знаю об ООП в Python и JavaScript.
Насчёт того что такое ООП я писать не буду, можете почитать тут.
Как создаются классы в Python и JavaScript?
Так создаётся класс в Python (Названия классов, методов и прочего может быть любым, если это не встроенные методы) :

Python и JavaScript
Python и JavaScript

Всем здравствуйте, в этой статье я расскажу то, что знаю об ООП в Python и JavaScript.

Насчёт того что такое ООП я писать не буду, можете почитать тут.

Как создаются классы в Python и JavaScript?

Так создаётся класс в Python (Названия классов, методов и прочего может быть любым, если это не встроенные методы) :

Так создаётся класс в Python. Я писал данный код на телефоне потому что ноутбука рядом не было, а статью написать хотелось.
Так создаётся класс в Python. Я писал данный код на телефоне потому что ноутбука рядом не было, а статью написать хотелось.

В JavaScript:

Так создаётся класс в JavaScript
Так создаётся класс в JavaScript

Видим, что отличие в создании класса пока что только в фигурных скобках, которые есть у JavaScript. На самом деле, отличий намного больше.

Как создать объект?

В JavaScript есть и другие способы создания объектов и добавления к ним свойств. Но рассмотрим эти примеры.

Python:

так создаётся объект в Python
так создаётся объект в Python

В JavaScript:

так создаётся объект в javascript
так создаётся объект в javascript

Здесь видим отличия только в объявлении переменной, ключевого слова new, которое нужно для создания Объекта в JavaScript. В Python всё очень просто.

МЕТОД-КОНСТРУКТОР, КОТОРЫЙ ВЫЗЫВАЕТСЯ ВМЕСТЕ С ОБЪЕКТОМ.

В Python метод конструктор это init, в JavaScript - constructor.

Python:

метод конструктор __init__ в Python
метод конструктор __init__ в Python

В JavaScript же всё немного иначе:

метод конструктор constructor в javascript
метод конструктор constructor в javascript

Отличия: ключевые слова, которые означают сам объект - self и this. В JavaScript не нужно писать function, чтобы добавить функцию. Как создать объект с этими свойствами?

Python :

так создаётся объект в Python со значением height =100 и weight = 50
так создаётся объект в Python со значением height =100 и weight = 50

JS:

так создаётся объект в JavaScript со значением height =100 и weight = 50
так создаётся объект в JavaScript со значением height =100 и weight = 50

Как добавить функции в классы, которые потом можно вызвать?

После метода-конструктора можно создать ещё один метод, в который тоже можно принимать значения.

Python:

метод getInfo(), который выводит в консоль Длину и Массу.
метод getInfo(), который выводит в консоль Длину и Массу.

И в JS:

метод getInfo(), который выводит в консоль Длину и Массу.
метод getInfo(), который выводит в консоль Длину и Массу.

Вызов метода

Python:

данный метод выведет в консоль Длину и Массу
данный метод выведет в консоль Длину и Массу

JS:

здесь также как в Python, но только в конец добавляется точка с запятой
здесь также как в Python, но только в конец добавляется точка с запятой

ИНКАПСУЛЯЦИЯ

В Python доступ к приватным полям всё равно есть, а в JavaScript нет, там всё более строго. Приватные поля нельзя наследовать.

ИНКАПСУЛЯЦИИ В PYTHON:

инкапсуляция в Python осуществляется с помощью нижнего подчёркивания _
инкапсуляция в Python осуществляется с помощью нижнего подчёркивания _

-15

ИНКАПСУЛЯЦИЯ В JAVASCRIPT:

инкапсуляция в Javascript осуществляется с помощью решётки! #
инкапсуляция в Javascript осуществляется с помощью решётки! #

-17

Наследование классов

В Python Наследование очень очень просто, ну и в JavaScript оно не представляет особой сложности.

После того как класс унаследован, мы можем создавать объекты дочернего класса, которые имеют все свойства и методы родителя, плюс свои собственные.

В JavaScript:

также можно переопределять методы родительского класса
также можно переопределять методы родительского класса

Python:

также можно переопределять методы родительского класса
также можно переопределять методы родительского класса

Чтобы наследовать классы в JavaScript после названия дочернего класса пишется слово extends, а затем название родительского класса. В Python после названия дочернего класса открываются круглые скобки, в которые пишется название родительского класса. Функция super() в обоих вариантах нужна, чтобы получить данные, переменные из родительского класса, например super(height, weight). Здесь дочерний класс получает значения height и weight из родительского класса Banana. Также можно переопределять и на следовать методы родительского класса для этого пишем super().getInfo() в Python и super.getInfo(); в JavaScript.

-20

Думаю, что на этом можно завершить. Это всё, что я хотел вам сказать о ООП в Python и JavaScript. На самом деле отличий очень много, можно погрузиться в эту тему, открыв документацию Python и JavaScript и сравнить самому. Или же почитать уже написанные другими людьми статьи на эти темы. Надеюсь, было понятно, желаю Вам рабочего кода! Всем большое спасибо за внимание, хорошего дня!