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 -
- Što je Python
- Je li objekt Python orijentiran
- Uzorci u Pythonu
- Kako koristiti enkapsulaciju u C ++?
- Inkapsulacija u Javi | Primjeri
- Inkapsulacija u C (rad, primjeri)
- Uvod u enkapsulaciju u JavaScript-u