Преглед на капсулирането в Python

Капсулацията е една от четирите основни концепции на обектно-ориентираното програмиране. Когато има изискване за групиране на данни и неговите последващи подпрограми, които си сътрудничат и функционират на едно място, заедно с необходимостта от скриване на сложните детайли от потребителя, използваме капсулирането, за да разберем „Капсулирането в Python“, трябва да се гмурнем дълбоко и да разберем как капсулацията влиза в картината на език за програмиране. Капсулацията помага за ограничаване на достъпа до методи и променливи. Предотвратяване на всяка случайна промяна на данни и това се постига чрез използването на непубличните методи за променлива за инстанции и за непублични променливи за инстанции. Класът капсулира методите и променливите.

Име Mangling в Python

Python предполага ограничение на достъпа до данни. Няма явни модификатори за достъп, но достъпът може да се контролира чрез име Mangling в Python. По подразбиране всички методи и променливи са публични в Python. Така че, ако някой идентификатор има две водещи подчертания, той се превръща в непублична инстанция в Python. Тук ще уточним променливи и методи, които не са публични, за да разберем по-добре капсулирането. Обхватът на непубличния метод на инстанция е само в рамките на собствения му клас и започва с една подчертаваща или две подчертаващи, т.е. единични „_“ или „__“ двойни преди променлива или метод. Обхватът на променлива, която не е публична инстанция, също е в нейния собствен клас или по метода, в който е дефиниран и също започва с две подчертания. Ако случайно пропуснем двете подчертания, тогава този метод се счита за публичен метод. Преди да разберем Encapsulation в Python, трябва да разберем как работят променливите и методите на публични и непублични екземпляри.

Непублични променливи за инстанции

В Python няма термин като „частен“, тъй като никой атрибут не е наистина частен в Python (Ще разгледаме основната алтернатива по-нататък в статията). Вместо това ние ги наричаме променлива за непублични инстанции. Ето как тук бихме се позовали на частните променливи и частните методи.

Ето малък фрагмент на кода в python за променливи, които не са публични инстанции:

Използваме ключовата дума self, защото имаме достъп до променливата на класа. Изходът е:

За да получите потвърждение за обхвата на променливата на непублична инстанция, ние добавяме print (abc .__ a) към кода:

И извлечената продукция е:

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

Непублични инстанционни методи

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

В този кодов фрагмент имаме два метода, един непубличен екземпляр и друг публичен метод. Публичният метод лесно се извиква чрез създаване на обект от класа abc и след това неговият изход се отпечатва.

Когато се опита подобен подход за непубличния метод на инстанция, ние срещаме следната грешка:

Тази програма ще даде следния резултат:

Следователно не е възможно да се осъществи достъп до метод, който не е публичен потребител, чрез създаване на обекти. За достъп до метода, който не е публичен потребител, можем да извикаме метода __show1 () от метода show2 () от същия клас. Ето как можем да покажем метода, който не е публичен, от публичния метод от същия клас.

изход:

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

Косвеният начин за достъп до променливата, която не е публична инстанция

По легитимни причини непубличните променливи инстанции не могат да бъдат достъпни извън класа, но има косвен начин за промяна на стойността на променливата на непублична инстанция и достъп чрез използване на обекти. Ще разгледаме кодовия фрагмент по-долу:

изход:

В горната програма имаме публични методи getNumber (самостоятелно, число) и displayNumber () и една променлива, която не е публична. При извикване на първия метод ние присвояваме стойността на променливата, която не е публична инстанция, и която се извиква в метода displayNumber ().

Методът на setter се използва за задаване на стойността на променливата на не-публичен екземпляр. Това е полезно в сценариите, когато може да искате да промените стойността на непублична променлива екземпляр след създаването на обекти за конкретна променлива.

Предимства на капсулирането в Python

Капсулацията помага за установяване на по-добър поток от данни, а също и за защита на данните. Концепцията за капсулиране прави кода самодостатъчен. Капсулацията предоставя голяма помощ на ниво изпълнение, тъй като се фокусира предимно върху въпроса „как“, като оставим комплекса „кога и къде“ и неговите сложности. Скриването на данните в единица прави капсулирането по-лесно и също така обезпечава данните.

Защо се нуждаем от капсулация в Python?

По-долу са изброени няколко причини, поради които разработчиците биха намерили концепцията за капсулиране удобна и защо обектно-ориентираните концепции са в сила в повечето от програмните езици, работещи в днешния сценарий.

  • Във всяко приложение има нужда от добре дефинирано взаимодействие, капсулациите помагат за постигането на това.
  • Концепцията за обектно ориентиране програмиране в python се фокусира върху създаването на код за многократна употреба. Това също е съкратено като DRY (Не повтаряйте себе си).
  • Поддръжката на приложението е по-лесна и има сигурност.
  • Яснота в процедурата за кодиране, тъй като разработчиците трябва да бъдат загрижени за целта на класа, а сложността се разглежда систематично.
  • Правилната организация на кодовете помага за гъвкавостта на кода, а също и помага при тестване на единици.
  • Потребителите намират лесно да използват системата, тъй като са скрити далеч от сложния дизайн, включен в задния план.
  • Притежаването на всички подобни данни на едно място и капсулирането увеличава сближаването вътре в модула.
  • Подобрява четимостта на кодовете и промените в една част от кода не нарушават другите части на кода.
  • Капсулацията предотвратява достъп до частта от кода случайно, но не и умишлено, тъй като обектите съдържат критични данни за приложения и той трябва да бъде променен навсякъде в кода.

Заключение - капсулиране в Python

Казано по-просто казано, капсулирането в Python означава, че вътрешното представяне на обект обикновено е скрито от изгледа извън определението на обекта. Това помага на разработчика да развие удобно за потребителя изживяване за крайния потребител и има защита от нарушаване на сигурността, тъй като кодовете са защитени.

Препоръчителни статии

Това е ръководство за капсулиране в Python. Тук обсъждаме нуждите на капсулирането в python заедно с неговите Непублични променливи за инстанции и Методи за инстанции. Можете също да разгледате следните статии, за да научите повече -

  1. Какво е Python
  2. Ориентиран е Python
  3. Модели в Python
  4. Как да използвате капсулирането в C ++?
  5. Капсулация в Java | Примери
  6. Капсулиране в С (Работа, Примери)
  7. Въведение в капсулирането в JavaScript