Огляд інкапсуляції в Python

Інкапсуляція - одна з чотирьох основних концепцій об'єктно-орієнтованого програмування. Коли є необхідність групувати дані та їх наступні підпрограми, які співпрацюють і функціонують в одному місці разом з необхідністю приховувати складні деталі від користувача, ми використовуємо інкапсуляцію, щоб зрозуміти "Інкапсуляція в Python", нам потрібно зануритися глибоко і зрозуміти як інкапсуляція потрапляє на малюнок мовою програмування. Інкапсуляція допомагає обмежити доступ до методів та змінних. Запобігання будь-якій випадковій зміні даних, і це досягається за допомогою методів непублічної змінної інстанції та непублічної змінної інстанції. Клас інкапсулює методи та змінні.

Ім'я Mangling в Python

Python передбачає обмеження доступу до даних. Немає явних модифікаторів доступу, але доступ можна керувати за допомогою Імені Mangling у Python. За замовчуванням у Python усі методи та змінні є загальнодоступними. Отже, якщо будь-який ідентифікатор має дві провідні підкреслення, він стає непублічним екземпляром в Python. Ми б тут вказували непублічні змінні екземпляри та методи, щоб краще зрозуміти інкапсуляцію. Область методу, що не є загальнодоступним екземпляром, є лише в її власному класі, і вона починається з одного підкреслення або двох підкреслення, тобто одинарного подвійного "_" або "__" перед змінною або методом. Область змінної непублічної інстанції також знаходиться в її власному класі або методом, яким вона визначена, і вона також починається з двох підкреслень. Якщо нам не вистачає двох підкреслень, то цей метод розглядається як публічний метод. Перш ніж ми зрозуміємо Encapsulation в Python, нам потрібно зрозуміти, як працюють загальнодоступні та непублічні змінні екземпляри та методи.

Змінні непублічні інстанції

У Python не існує терміна "приватний", оскільки жоден атрибут справді не є приватним у Python (про основну альтернативу ми обговоримо далі в статті). Натомість ми називаємо їх змінною, що не є публічною інстанцією. Саме так ми б посилалися на приватні змінні та приватні методи.

Ось невеликий фрагмент коду в python для змін, що не є загальнодоступними екземплярами:

Ми використовуємо ключове слово self, оскільки ми отримуємо доступ до змінної класу. Вихід:

Для отримання підтвердження щодо сфери дії непублічної змінної екземпляра ми додаємо print (abc .__ a) до коду:

І вихідний результат:

Таким чином, ми бачимо, що ми не можемо використовувати непублічні змінні екземпляри поза класом.

Методи, що не належать до публічних інстанцій

Функція непублічного екземпляра не може бути викликана об'єктом безпосередньо, а лише в межах класу.

У цьому фрагменті коду у нас є два методи: один непублічний екземпляр та інший публічний метод. Загальнодоступний метод легко викликається, створюючи об'єкт класу abc, і тоді його вихід надрукується.

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

Ця програма дасть такий вихід:

Тому неможливо отримати доступ до непублічного методу екземпляра шляхом створення об'єкта. Для доступу до непублічного методу екземпляра ми можемо викликати метод __show1 () з методу show2 () того ж класу. Ось як ми можемо відобразити метод, що не є публічним примірником, із публічного методу того ж класу.

Вихід:

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

Непрямий спосіб доступу до змінної непублічної інстанції

З законних причин до публічних змінних екземплярів не можна отримати доступ за межі класу, але є непрямий спосіб змінити значення змінної непублічної інстанції та отримати доступ за допомогою об'єктів. Ми розглянемо фрагмент коду нижче:

Вихід:

У вищезгаданій програмі у нас є загальнодоступні методи getNumber (self, num) та displayNumber () та одна непублічна змінна інстанція. Після виклику першого методу ми присвоюємо значення непублічній змінній екземпляра, яке викликається методом displayNumber ().

Метод setter використовується для встановлення значення змінної непублічного екземпляра. Це корисно в сценаріях, коли ви, можливо, захочете змінити значення непублічної змінної екземпляра після створення об'єктів для певної змінної.

Переваги інкапсуляції в Python

Інкапсуляція допомагає налагодити кращий потік даних, а також захист даних. Концепція інкапсуляції робить код самодостатнім. Інкапсуляція надає велику допомогу на рівні впровадження, оскільки в першу чергу зосереджується на питанні "як", залишаючи комплекс "коли / де" та його складності. Приховування даних в одиницю полегшує інкапсуляцію, а також забезпечує безпеку даних.

Для чого нам потрібна інкапсуляція в Python?

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

  • У кожній програмі необхідна чітко визначена взаємодія, інкапсуляції допомагають досягти цього.
  • Концепція об'єктно-орієнтаційного програмування в python зосереджена на створенні коду для багаторазового використання. Це також скорочено як DRY (не повторюйте себе).
  • Обслуговування додатків простіше і забезпечується безпека.
  • Чіткість процедури кодування, оскільки розробники повинні дотримуватися мети класу, а складності вирішуються систематично.
  • Правильна організація кодів допомагає гнучкості коду, а також допомагає в тестуванні одиниць.
  • Користувачам легко користуватися системою, оскільки вони приховані подалі від складного дизайну, який бере участь у програмі.
  • Маючи всі подібні дані в одному місці та капсулюючи, це збільшує згуртованість всередині модуля.
  • Поліпшення читабельності кодів і зміни в одній частині коду не порушують інших частин коду.
  • Інкапсуляція запобігає випадковому доступу до частини коду, але не навмисно, оскільки об’єкти зберігають важливі дані для додатків, і його слід змінювати в будь-якому місці коду.

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

Простіше кажучи, інкапсуляція в Python означає внутрішнє подання об'єкта, як правило, приховане від подання за межами визначення об'єкта. Це допомагає розробнику розвинути зручну для користувачів інформацію, а також захист від порушення безпеки, оскільки коди захищені.

Рекомендовані статті

Це посібник з інкапсуляції в Python. Тут ми обговорюємо потреби інкапсуляції в python разом із його непублічними змінними інстанціями та методами інстанцій. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Що таке Python
  2. Орієнтований на об’єкт Python
  3. Візерунки в Python
  4. Як використовувати інкапсуляцію в C ++?
  5. Інкапсуляція на Java | Приклади
  6. Інкапсуляція в C (Робота, приклади)
  7. Вступ до інкапсуляції в JavaScript