Pregled enkapsulacije v Pythonu

Inkapsulacija je eden izmed štirih temeljnih konceptov objektno usmerjenega programiranja. Kadar obstaja potreba po združevanju podatkov in njihovih nadaljnjih podprogramov, ki sodelujejo in delujejo na enem mestu, skupaj s potrebo po skrivanju zapletenih podrobnosti pred uporabnikom, uporabimo enkapsulacijo, da razumemo 'Enkapsulacija v Pythonu', da se moramo poglobiti in razumeti kako Enkapsulacija pride v sliko v programskem jeziku. Enkapsulacija pomaga pri omejevanju dostopa do metod in spremenljivk. Preprečimo kakršno koli naključno spreminjanje podatkov, kar dosežemo z uporabo metod, ki niso javne in spremenljivke primerkov. Razred zajema metode in spremenljivke.

Ime Mangling v Pythonu

Python pomeni omejitev dostopa do podatkov. Ni eksplicitnih modifikatorjev dostopa, vendar je dostop mogoče nadzirati prek Name Mangling v Python-u. V Pythonu so vse metode in spremenljivke privzeto javne. Če ima kateri koli identifikator dve glavni podčrtani, postane Python nejavna instanca. Tu bi navajali nejavne spremenljivke in metode, da bi bolje razumeli enkapsulacijo. Obseg metode, ki ni javna instanca, je le znotraj njenega razreda in se začne z enim podčrtajem ali dvema podčrtajema, tj. Enojnim dvojnikom "_" ali "__" pred spremenljivko ali metodo. Obseg spremenljivke, ki ni javna instanca, je tudi v njenem lastnem razredu ali po metodi, na katero je definirana, prav tako se začne z dvema podčrtajema. Če slučajno zamudimo obe podčrtaji, potem se ta metoda šteje za javno metodo. Preden razumemo Encapsulacijo v Pythonu, moramo razumeti, kako delujejo javne in nejavne spremenljivke in metode.

Nejavne spremenljivke primerkov

V Pythonu ni izraza zasebno, saj v Pythonu ni nobenega atributa (o osnovni alternativi bomo razpravljali v nadaljevanju članka). Namesto tega jih imenujemo kot nejavna spremenljivka primerkov. Tako bi se sklicevali na zasebne spremenljivke in zasebne metode.

Tu je majhen delček kode v pythonu za spremenljivke nejavnih primerkov:

Ključno besedo self uporabljamo, ker dostopamo do spremenljivke razreda. Izhod je:

Za pridobitev potrditve o obsegu spremenljivke, ki ni javna instanca, v kodo dodamo print (abc .__ a):

In izhodni rezultat je:

Tako vidimo, da zunaj razreda ne moremo uporabljati nejavnih spremenljivk primerkov.

Metode, ki niso javne osebe

Funkcije, ki ni javna instanca, ni mogoče poklicati na objekt neposredno, ampak le znotraj razreda.

V tem odseku kode imamo na voljo dve metodi, eno ne-javno in drugo javno metodo. Javna metoda se enostavno prikliče tako, da ustvari objekt razreda abc in nato se njegov izpis natisne.

Pri poskusu podobnega pristopa za metodo, ki ni javna instanca, se soočamo z naslednjo napako:

Ta program bo ustvaril naslednji rezultat:

Zato do nejavne metode primerka ni mogoče ustvariti z ustvarjanjem predmetov. Za dostop do metode, ki ni javna instanca, lahko pokličemo metodo __show1 () iz metode show2 () istega razreda. Tukaj je, kako lahko iz javne metode istega razreda prikažemo metodo, ki ni javna instanca.

Izhod:

Tako metode, ki ni javna instanca, ni mogoče poklicati zunaj njenega razreda.

Posredni način dostopa do spremenljivke nejavne instance

Iz zakonitih razlogov do nerazličnih spremenljivk primerkov ni mogoče dostopati zunaj razreda, vendar obstaja posreden način za spreminjanje vrednosti spremenljivke, ki ni javno uporabniški primerek, in dostop do njih s pomočjo predmetov. Ogledali si bomo spodnji delček kode:

Izhod:

V zgornjem programu imamo javne metode getNumber (self, num) in displayNumber () in eno ne-javno spremenljivko primerka. Pri klicanju prve metode dodelimo vrednost nejavni spremenljivki primerka, ki se imenuje v metodi displayNumber ().

Metoda setter se uporablja za nastavitev vrednosti spremenljivke ne-javnega primerka. To je koristno v scenarijih, ko boste morda želeli spremeniti vrednost spremenljivke, ki ni javna instanca, potem ko ustvarite predmete za določeno spremenljivko.

Prednosti Encapsulacije v Pythonu

Enkapsulacija pomaga vzpostaviti boljši pretok podatkov in tudi zaščito podatkov. S konceptom kapsulacije je koda samozadostna. Enkapsulacija nudi veliko pomoč na ravni izvajanja, saj se osredotoča predvsem na vprašanje "kako" zapustiti kompleks "kdaj / kje" in njegove zapletenosti. Skrivanje podatkov v enoto olajša kapsulacijo in hkrati tudi zaščiti podatke.

Zakaj potrebujemo enkapsulacijo v Pythonu?

Spodaj je naštetih več razlogov, zakaj bi razvijalci našli koncept inkapsulacije priročen in zakaj objektno orientirani koncepti vladajo v večini programskih jezikov, ki se izvajajo v današnjem scenariju.

  • V vsaki aplikaciji je potrebno dobro opredeljeno interakcijo, pri tem pa kapsule pomagajo.
  • Koncept objektnega orientacijskega programiranja v pythonu se osredotoča na izdelavo kode za večkratno uporabo. To je skrajšano tudi kot DRY (Ne ponavljaj se).
  • Vzdrževanje aplikacije je lažje in zagotovljena je varnost.
  • Jasnost glede postopka kodiranja, saj morajo razvijalci upoštevati cilj razreda, zapletenosti pa obravnavati sistematično.
  • Pravilna organizacija kode pomaga pri prilagodljivosti kode in pomaga tudi pri testiranju enot.
  • Uporabniki sistem enostavno uporabljajo, saj so skriti stran od zapletene zasnove, ki je vključena v zaledje.
  • Imeti in vsebovati vse podobne podatke na enem mestu in povečuje kohezijo znotraj modula.
  • Izboljša berljivost kod in spremembe v enem delu kode ne motijo ​​drugih delov kode.
  • Inkapsulacija preprečuje dostop do dela kode po naključju, vendar ne namerno, saj predmeti hranijo kritične podatke za aplikacije in jih je treba spremeniti kjer koli v kodi.

Zaključek - Inkapsulacija v Pythonu

Preprosteje rečeno, kapsulacija v Pythonu pomeni, da je notranja predstavitev predmeta na splošno skrita pred pogledom zunaj definicije objekta. To pomaga razvijalcu razviti uporabniku prijazno izkušnjo za končnega uporabnika in zaščita pred kršitvijo varnosti, saj so kode varne.

Priporočeni članki

To je vodnik za Encapsulacijo v Pythonu. Tukaj razpravljamo o potrebah po enkapsulaciji v pythonu skupaj z njegovimi nejavnimi spremenljivkami in instančnimi metodami. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Kaj je Python
  2. Je objekt usmerjen v Python
  3. Vzorci v Pythonu
  4. Kako uporabiti enkapsulacijo v C ++?
  5. Kapsulacija na Javi | Primeri
  6. Zapiranje v C (delo, primeri)
  7. Uvod v kapsulacijo v JavaScript