Pregled enkapsulacije u Pythonu

Inkapsulacija je jedan od četiri temeljna koncepta objektno orijentiranog programiranja. Kad postoji zahtjev za grupiranje podataka i njegovih kasnijih podprograma koji surađuju i djeluju na jednom mjestu, zajedno s potrebom da se od korisnika sakriju složeni detalji, koristimo enkapsulaciju da bismo razumjeli 'Enkapsulaciju na Pythonu', moramo duboko zaviriti i razumjeti kako Enkapsulacija ulazi u sliku programskim jezikom. Inkapsulacija pomaže u ograničavanju pristupa metodama i varijablama. Sprječavanje bilo kakve slučajne promjene podataka, a to se postiže metodama ne-javne varijable instancije i ne-javne varijable instance. Klasa obuhvaća metode i varijable.

Ime Mangling u Pythonu

Python podrazumijeva ograničenje pristupa podacima. Ne postoje eksplicitni modifikatori pristupa, ali pristup se može kontrolirati putem Name Manglinga u Python-u. Prema metodama, sve metode i varijable su javne u Pythonu. Dakle, ako bilo koji identifikator ima dvije vodeće podvlake, on postaje nejavna instanca u Pythonu. Ovdje bismo specificirali ne-javne varijable i metode koje bi bolje razumjele enkapsulaciju. Opseg nejavne instance primjera nalazi se samo unutar vlastite klase, a započinje s jednom podvlakom ili dvije podvlake, tj. Jednim dvostrukim „_“ ili „__“ dvostrukim prije varijable ili metode. Opseg varijable nejavne instance je također u svojoj klasi ili metodi na koju je definiran, a započinje s dvije podvlake. Ako nam nedostaju dvije podcrtane točke, tada se ta metoda smatra javnom metodom. Prije nego što razumijemo Encapsulaciju u Pythonu, moramo razumjeti kako rade javne i nejavne varijable i metode instanci.

Varijable nejavne instance

U Python-u, ne postoji termin "privatno", jer nijedan atribut u Pythonu doista nije privatni (o kojoj ćemo alternativi raspravljati u daljnjem članku). Umjesto toga, nazivamo ih varijablom nejavne instance. Na taj bi se način referirali privatne varijable i privatne metode.

Evo malog isječka koda u pythonu za varijable inicija koje nisu javne:

Koristimo ključnu riječ self jer pristupamo varijabli klase. Izlaz je:

Da bismo dobili potvrdu o opsegu varijable ne-javne instance, u kod dodamo print (abc .__ a):

A povratni rezultat je:

Dakle, vidimo da ne možemo koristiti ne-javne varijable instanci izvan klase.

Metode nejavne instance

Funkcija nejavne instance se ne može pozvati na objekt izravno, već samo unutar klase.

U ovom isječku koda imamo dvije metode, jednu nejavnu instancu i drugu javnu metodu. Javna metoda se lako poziva kreiranjem objekta klase abc i tada se ispisuje njegov izlaz.

Kada se pokuša sličan pristup za metodu koji nije javni primjer, susrećemo se sa sljedećom pogreškom:

Ovaj program će proizvesti sljedeće rezultate:

Stoga nije moguće pristupiti metodi koja nije javni primjerci stvaranjem objekta. Za pristup metodi koja nije javna instanca možemo nazvati metodu __show1 () iz metode show2 () iste klase. Evo kako možemo prikazati metodu nejavne instance iz javne metode iste klase.

Izlaz:

Stoga se metoda nejavne instance ne može nazvati izvan svoje klase.

Neizravni način pristupa varijabli ne-javne instance

Iz legitimnih razloga ne-javnim varijablama instanci ne može se pristupiti izvan klase, ali postoji neizravni način izmjene vrijednosti varijable ne-javne instance i pristupa pomoću objekata. Pogledat ćemo dolje isječak koda:

Izlaz:

U gornjem programu imamo javne metode getNumber (self, num) i displayNumber () i jednu nejavnu varijablu instancije. Pri pozivanju prve metode dodijeljujemo vrijednost nejavnoj varijabli instancije, a koja se zove u metodi displayNumber ().

Metoda postavljanja koristi se za postavljanje vrijednosti varijable ne-javne instance. Ovo je korisno u scenarijima kada možda želite promijeniti vrijednost varijable nejavne instance nakon stvaranja objekata za određenu varijablu.

Prednosti enkapsulacije u Pythonu

Enkapsulacija pomaže u uspostavljanju boljeg protoka podataka, a ujedno i zaštitu podataka. Koncept enkapsulacije kod čini samodostatnim. Inkapsulacija pruža veliku pomoć na razini provedbe jer se prvenstveno usredotočuje na pitanje "kako" ostavlja kompleks "kada i gdje" i njegove složenosti. Sakrivanje podataka u jedinicu olakšava kapsuliranje i također ih osigurava.

Zašto nam je potrebna enkapsulacija u Pythonu?

Ispod je navedeno nekoliko razloga zbog kojih bi programeri koncept inkapsulacije smatrali prikladnim i zašto koncepti orijentirani na objekt vladaju u većini programskih jezika koji se izvode u današnjem scenariju.

  • U svakoj je aplikaciji potrebna dobro definirana interakcija, a kapsulacije pomažu u tome.
  • Koncept programiranja orijentacije objekata u pythonu usredotočen je na izradu koda za višekratnu upotrebu. Ovo se također skraćuje kao DRY (Ne ponavljajte sebe).
  • Održavanje aplikacije je lakše i osigurana je sigurnost.
  • Jasnoća postupka kodiranja kao razvojnih programera treba da se brine s ciljem klase, a složenosti se rješavaju sustavno.
  • Pravilna organizacija koda pomaže u fleksibilnosti koda, ali i pomaže u testiranju jedinica.
  • Korisnici smatraju jednostavnim korištenje sustava jer su skriveni daleko od složenog dizajna koji je uključen u pozadinu.
  • Imajući sve slične podatke na jednom mjestu i kapsulirano povećava koheziju unutar modula.
  • Poboljšava čitljivost kodova i promjene u jednom dijelu koda ne ometaju ostale dijelove koda.
  • Inkapsulacijom se sprječava pristupiti dijelu koda slučajno, ali ne namjerno, jer objekti sadrže kritične podatke za aplikacije te ga treba promijeniti bilo gdje u kodu.

Zaključak - Inkapsulacija u Pythonu

Jednostavnije rečeno, enkapsulacija u Python-u znači da je unutarnji prikaz objekta uglavnom skriven od pogleda izvan definicije objekta. To pomaže programeru da razvije korisničko iskustvo za krajnjeg korisnika i postoji zaštita od kršenja sigurnosti jer su kodovi zaštićeni.

Preporučeni članci

Ovo je vodič za Encapsulaciju na Pythonu. Ovdje raspravljamo o potrebama enkapsulacije u python-u, zajedno s njegovim ne-javnim varijablama instance i metodama instanci. Možete pogledati i sljedeće članke da biste saznali više -

  1. Što je Python
  2. Je li objekt Python orijentiran
  3. Uzorci u Pythonu
  4. Kako koristiti enkapsulaciju u C ++?
  5. Inkapsulacija u Javi | Primjeri
  6. Inkapsulacija u C (rad, primjeri)
  7. Uvod u enkapsulaciju u JavaScript-u

Kategorija: