Python инкапсуляция и права доступа

В этой части учебника по Python, мы рассмотрим что такое инкапсуляция в Python 3 и права доступа.

Инкапсуляция в Python 3:

Давайте разберём что такое инкапсуляция, тут стоит отметить, что есть много различных терминов, но я расскажу тут самый популярный.

Инкапсуляция это связь данных с методом, то есть можно создать класс, в котором будет как минимум один метод и свойство, к такому методу будет применимо термин инкапсуляция.

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

Права доступа в Python 3:

Теперь разберём что такое права доступа в Python, да и в других языках тоже, вы можете назначить разные права доступа свойствам и методам класса, всего их три типа:

  • public — Публичный доступ, доступен всем и везде;
  • private — Приватный доступ, доступен только внутри класса или объекта;

Это основные, но есть protected, это что-то между public и private, но он редко используется, поэтому не будем его особо затрагивать.

Чтобы в Python назначить тип доступа private, нужно перед названием свойства или метода поставить два нижних подчёркивания, для protected, только одно, а public, вообще не чего не надо, поэтому в классе по умолчанию всё имеет публичный доступ.

Пример:

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

Вот сам пример:

Как видите тут всё как в прошлом примере, только добавили приватное свойство __speed, оно должно нормально выводится в констрикторе и в main() когда вызываем метод  show_properties(), вот наглядное доказательство:

права доступа python пример

Как видите вывелось два раза, это всё из-за того, что мы вызываем метод show_properties() два раза, сначала в конструкторе, а потом в main(), основной программе.

Теперь вместо show_properties(), в основной программе, мы попробуем вывести просто свойство __speed, вот что получиться:

Ещё пример как работаю права доступа в Python

То есть сразу выводится ошибка, и не даёт программисту взять это свойство, всё точно также работает и для методов.

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

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

Вывод:

В этой статье вы прочитали что такое инкапсуляция в Python 3 и права доступа, думаю вам было интересно.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
(Пока оценок нет)
Загрузка...

Поделится:

Дополнительно:

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии