Prezentare generală a încapsulării în Python

Încapsularea este una dintre cele patru concepte fundamentale ale programării orientate pe obiecte. Când există o cerință de a grupa date și subrutinele lor ulterioare care colaborează și funcționează într-un singur loc, împreună cu nevoia de a ascunde detaliile complexe de la utilizator, folosim încapsularea pentru a înțelege „Încapsularea în Python”, trebuie să ne scufundăm adânc și să înțelegem modul în care Encapsularea apare în imagine într-un limbaj de programare. Încapsularea ajută la restricționarea accesului la metode și variabile. Prevenirea oricărei modificări accidentale a datelor, iar acest lucru se realizează utilizând metodele variabile de instanță și non-publice Instanța Variabilă. Clasa încapsulează metodele și variabilele.

Nume Mangling în Python

Python implică o restricție asupra accesului la date. Nu există modificatori de acces explicit, dar accesul poate fi controlat prin Name Mangling în Python. În mod implicit, toate metodele și variabilele sunt publice în Python. Așadar, dacă orice identificator are două sublinieri principale, devine o instanță care nu este publică în Python. Am specifica aici variabilele și metodele de instanță care nu sunt publice pentru a înțelege mai bine încapsularea. Domeniul de aplicare a metodei de instanță publică este doar în cadrul clasei sale proprii și începe cu un subliniere sau două sublinieri, adică dublu „_” sau „__” dublu înaintea unei variabile sau a unei metode. Domeniul de aplicare al unei variabile de instanță care nu este publică este, de asemenea, în propria sa clasă sau prin metoda în care este definită și, de asemenea, începe cu două sublinii. Dacă se întâmplă să lipsească cele două sublinieri, acea metodă este considerată o metodă publică. Înainte de a înțelege încapsularea în Python, trebuie să înțelegem cum funcționează variabilele și metodele publice și non-instanță publice.

Variabile de instanță publică

În Python, nu există un termen la fel de „privat”, deoarece niciun atribut nu este cu adevărat privat în Python (vom discuta alternativa de bază mai târziu în articol). În schimb, le denumim variabilă de instanță nepublică. Astfel am face referire prin variabilele private și metodele private prin prezenta.

Iată un mic fragment de cod din python pentru variabile de instanță care nu sunt publice:

Folosim cuvântul cheie auto deoarece accesăm variabila de clasă. Produsul este:

Pentru a obține o confirmare cu privire la sfera variabilei de instanță publică, adăugăm tipărirea (abc .__ a) la cod:

Și rezultatul returnat este:

Astfel, vedem că nu putem folosi variabile de instanță care nu sunt publice în afara clasei.

Metode de instanță publică

O funcție de instanță care nu este publică nu poate fi apelată direct la obiect, ci doar în cadrul clasei.

În acest fragment de cod, avem două metode, una care nu este publică și o altă metodă publică. Metoda publică este apelată cu ușurință prin crearea unui obiect al clasei abc și apoi ieșirea ei este tipărită.

Atunci când se încearcă o abordare similară pentru metoda instanței care nu este publică, ne confruntăm cu următoarea eroare:

Acest program va produce următorul rezultat:

Prin urmare, nu este posibilă accesarea unei metode care nu este publică prin crearea obiectelor. Pentru a accesa metoda instanței care nu este publică, putem apela metoda __show1 () din metoda show2 () din aceeași clasă. Iată cum putem afișa metoda instanței care nu este publică din metoda publică a aceleiași clase.

ieşire:

Astfel, metoda non-publică a instanței nu poate fi apelată în afara clasei sale.

Modul indirect de accesare a variabilei de instanță publică

Din motive legitime nu pot fi accesate variabile de instanță publice dincolo de clasă, dar există o modalitate indirectă de a modifica valoarea variabilei de instanță care nu este publică și de a accesa utilizând obiecte. Vom arunca o privire asupra fragmentului de cod de mai jos:

ieşire:

În programul de mai sus avem metode publice getNumber (self, num) și displayNumber () și o variabilă de instanță care nu este publică. La apelarea primei metode, alocăm valoarea variabilei de instanță care nu este publică, iar aceasta este apelată la metoda displayNumber ().

Metoda setter este utilizată pentru a stabili valoarea variabilei de instanță care nu este publică. Acest lucru este util în scenarii atunci când este posibil să doriți să modificați valoarea unei variabile de instanță care nu este publică după crearea de obiecte pentru o anumită variabilă.

Avantajele încapsulării în Python

Încapsularea ajută la stabilirea unui flux mai bun de date, precum și la protecția datelor. Conceptul de încapsulare face ca codul să fie suficient. Încapsularea oferă un mare ajutor la nivelul implementării, deoarece se concentrează în principal pe întrebarea „cum” lăsând în urmă complexul „când / unde” și complexitățile sale. Ascunderea datelor într-o unitate simplifică încapsularea și securizează datele.

De ce avem nevoie de Încapsulare în Python?

Mai jos sunt prezentate mai multe motive pentru care dezvoltatorii ar găsi conceptul de încapsulare la îndemână și de ce conceptele orientate pe obiecte guvernează în majoritatea limbajelor de programare care se execută în scenariul actual.

  • Este nevoie de o interacțiune bine definită în fiecare aplicație, încapsulările ajută la realizarea acestui lucru.
  • Conceptul de programare a orientării obiectelor în python se concentrează pe crearea de coduri reutilizabile. Aceasta este, de asemenea, prescurtată ca DRY (Nu vă repetați).
  • Întreținerea aplicației este mai ușoară și există securitate asigurată.
  • Claritatea procedurii de codare, deoarece dezvoltatorii trebuie să fie preocupați de obiectivul clasei, iar complexitățile sunt tratate sistematic.
  • Organizarea corectă a codurilor ajută la flexibilitatea codului și ajută, de asemenea, la testarea unității.
  • Utilizatorilor le este ușor să folosească sistemul, deoarece sunt ascunse de designul complex implicat în backend.
  • Având toate datele similare într-un singur loc și încapsulate, crește coeziunea în interiorul unui modul.
  • Îmbunătățește lizibilitatea codurilor și schimbările într-o parte a codului nu perturbă alte părți ale codului.
  • Încapsularea împiedică accesul accidental la o parte din cod, dar nu în mod intenționat, deoarece obiectele conțin date critice pentru aplicații și ar trebui schimbat oriunde în cod.

Concluzie - încapsulare în Python

În termeni mai simpli Încapsularea în Python înseamnă că reprezentarea internă a unui obiect este în general ascunsă din vedere în afara definiției obiectului. Acest lucru ajută dezvoltatorul să dezvolte o experiență ușor de utilizat pentru utilizatorul final și există protecție împotriva unei încălcări de securitate, deoarece codurile sunt securizate.

Articole recomandate

Acesta este un ghid pentru Încapsulare în Python. Aici discutăm nevoile de încapsulare în python împreună cu variabilele sale de instanță nepublică și metodele de instanță. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Ce este Python
  2. Este orientat pe obiecte Python
  3. Modele în Python
  4. Cum se utilizează încapsularea în C ++?
  5. Încapsulare în Java | Exemple
  6. Încapsulare în C (de lucru, exemple)
  7. Introducere în încapsulare în JavaScript