Обзор инкапсуляции в Python

Инкапсуляция является одним из четырех основных понятий объектно-ориентированного программирования. Когда есть требование сгруппировать данные и их последующие подпрограммы, которые взаимодействуют и функционируют в одном месте вместе с необходимостью скрывать сложные детали от пользователя, мы используем инкапсуляцию, чтобы понять «Инкапсуляцию в Python», нам нужно углубиться и понять как инкапсуляция входит в картину на языке программирования. Инкапсуляция помогает в ограничении доступа к методам и переменным. Предотвращение любого случайного изменения данных, и это достигается с помощью непубличных переменных переменных и непубличных переменных экземпляров. Класс инкапсулирует методы и переменные.

Название искажения в Python

Python подразумевает ограничение доступа к данным. Не существует явных модификаторов доступа, но доступ можно контролировать с помощью Mangling Name в Python. По умолчанию все методы и переменные являются общедоступными в Python. Поэтому, если какой-либо идентификатор имеет два ведущих подчеркивания, он становится непубличным экземпляром в Python. Мы бы указали непубличные переменные экземпляра и методы здесь, чтобы лучше понять инкапсуляцию. Область непубличного метода экземпляра находится только в его собственном классе, и он начинается с одного подчеркивания или двух подчеркиваний, то есть одного «_» или «__», двойного перед переменной или методом. Область непубличной переменной экземпляра также находится в своем собственном классе или в методе, в котором она определена, и она также начинается с двух подчеркиваний. Если мы пропустили два подчеркивания, то этот метод считается публичным. Прежде чем мы поймем Encapsulation в Python, мы должны понять, как работают переменные и методы экземпляра public и public.

Непубличные переменные экземпляра

В Python нет термина «приватный», так как в Python нет атрибута, действительно являющегося приватным (мы обсудим альтернативу ниже в этой статье). Вместо этого мы называем их непубличной переменной экземпляра. Таким образом, мы будем ссылаться на приватные переменные и приватные методы.

Вот небольшой фрагмент кода на python для непубличных переменных экземпляра:

Мы используем ключевое слово self, потому что мы обращаемся к переменной класса. Выход:

Чтобы получить подтверждение области непубличной переменной экземпляра, мы добавляем в код print (abc .__ a):

И возвращаемый результат:

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

Непубличные методы экземпляра

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

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

Когда аналогичный подход используется для закрытого метода экземпляра, мы сталкиваемся со следующей ошибкой:

Эта программа выдаст следующий вывод:

Поэтому невозможно получить доступ к непубличному методу экземпляра при создании объекта. Чтобы получить доступ к непубличному методу экземпляра, мы можем вызвать метод __show1 () из метода show2 () того же класса. Вот как мы можем отобразить непубличный метод экземпляра из открытого метода того же класса.

Выход:

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

Косвенный способ доступа к непубличной переменной экземпляра

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

Выход:

В приведенной выше программе у нас есть открытые методы getNumber (self, num) и displayNumber () и одна непубличная переменная экземпляра. При вызове первого метода мы присваиваем значение непубличной переменной экземпляра, которая вызывается в методе displayNumber ().

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

Преимущества инкапсуляции в Python

Инкапсуляция помогает в создании лучшего потока данных, а также в защите данных. Концепция инкапсуляции делает код самодостаточным. Инкапсуляция оказывает большую помощь на уровне реализации, так как она в основном фокусируется на вопросе «как» оставить комплекс «когда / где» и его сложности позади. Сокрытие данных в блоке упрощает инкапсуляцию, а также защищает данные.

Зачем нам нужна инкапсуляция в Python?

Ниже приведено несколько перечисленных причин, почему разработчикам было бы удобно использовать концепцию инкапсуляции и почему объектно-ориентированные концепции господствуют в большинстве языков программирования, которые работают в современном сценарии.

  • Существует необходимость в четко определенном взаимодействии в каждом приложении, инкапсуляция помогает в достижении этого.
  • Концепция объектно-ориентированного программирования в python направлена ​​на создание кода многократного использования. Это также сокращенно как СУХОЙ (не повторяйте себя).
  • Обслуживание приложения проще и обеспечена безопасность.
  • Ясность в процедуре кодирования, поскольку разработчики должны заботиться о целях класса, а сложности рассматриваются систематически.
  • Правильная организация кодов помогает гибкости кода, а также помогает в модульном тестировании.
  • Пользователи считают, что им легко пользоваться системой, поскольку они скрыты от сложного дизайна, используемого на серверной части.
  • Хранение всех похожих данных в одном месте и инкапсулирование увеличивает когезию внутри модуля.
  • Улучшает читабельность кодов и изменения в одной части кода не нарушают работу других частей кода.
  • Инкапсуляция предотвращает случайный доступ к части кода, но не преднамеренно, поскольку объекты содержат критические данные для приложений, и их следует изменять в любом месте кода.

Вывод - инкапсуляция в Python

Проще говоря, инкапсуляция в Python означает, что внутреннее представление объекта обычно скрыто от представления за пределами определения объекта. Это помогает разработчику разработать удобный для пользователя интерфейс для конечного пользователя и обеспечивает защиту от взлома безопасности, поскольку коды защищены.

Рекомендуемые статьи

Это руководство по инкапсуляции в Python. Здесь мы обсудим необходимость инкапсуляции в python вместе с его непубличными переменными экземпляра и методами экземпляра. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Что такое Python
  2. Является ли Python объектно-ориентированным
  3. Шаблоны в Python
  4. Как использовать инкапсуляцию в C ++?
  5. Инкапсуляция в Java | Примеры
  6. Инкапсуляция в C (Работа, Примеры)
  7. Введение в инкапсуляцию в JavaScript