Prehľad zapuzdrenia v Pythone
Zapuzdrenie je jedným zo štyroch základných konceptov objektovo orientovaného programovania. Ak existuje požiadavka na zoskupenie údajov a ich následných podprogramov, ktoré spolupracujú a fungujú na jednom mieste spolu s potrebou skryť komplexné podrobnosti pred používateľom, používame zapuzdrenie, aby sme pochopili „zapuzdrenie v Pythone“, musíme sa hlboko ponoriť a porozumieť ako zapuzdrenie prichádza na obrázok v programovacom jazyku. Zapuzdrenie pomáha pri obmedzovaní prístupu k metódam a premenným. Zabránenie akejkoľvek náhodnej úprave údajov, a to sa dosiahne použitím metód neverejných premenných inštancií a neverejných premenných inštancií. Trieda obsahuje metódy a premenné.
Meno Mangling v Pythone
Python znamená obmedzenie prístupu k údajom. Neexistujú žiadne modifikátory explicitného prístupu, ale prístup sa dá v Pythone ovládať pomocou Name Mangling. V predvolenom nastavení sú všetky metódy a premenné verejné v Pythone. Ak má nejaký identifikátor dve vedúce znaky podčiarknutia, v Pythone sa stane neverejnou inštanciou. Tu by sme špecifikovali neverejné premenné a metódy, aby sme lepšie porozumeli zapuzdreniu. Rozsah metódy neverejných inštancií je iba v rámci vlastnej triedy a začína jedným podčiarknutím alebo dvoma podčiarkami, tj jednoduchým znakom „_“ alebo „__“ pred premennou alebo metódou. Rozsah neverejnej inštancie je tiež vo svojej vlastnej triede alebo metódou, v ktorej je definovaná, a začína tiež dvoma podčiarkami. Ak náhodou nevynecháme dve podčiarknutia, táto metóda sa považuje za verejnú metódu. Predtým, ako pochopíme zapuzdrenie v Pythone, musíme pochopiť, ako fungujú verejné a neverejné premenné a metódy inštancií.
Premenné neverejného stupňa
V Pythone nie je pojem „súkromný“, pretože žiadny atribút v skutočnosti nie je v Pythone skutočne súkromný (základnú alternatívu budeme diskutovať ďalej v článku). Namiesto toho ich označujeme ako neverejné premenné. Takto by sme týmto odkazovali na súkromné premenné a súkromné metódy.
Tu je malý útržok kódu v pythone pre neverejné premenné inštancie:
Používame vlastné kľúčové slovo, pretože pristupujeme k premennej triedy. Výstup je:
Na získanie potvrdenia o rozsahu premennej neverejnej inštancie pridáme tlač (abc .__ a) do kódu:
A vrátený výstup je:
Vidíme teda, že nemôžeme používať neverejné premenné inštancie mimo triedy.
Metódy neverejnej inštancie
Funkciu neverejnej inštancie nie je možné volať na objekt priamo, ale iba v rámci triedy.
V tomto útržku kódu máme dve metódy, jednu neverejnú inštanciu a ďalšiu verejnú metódu. Verejná metóda sa ľahko vyvolá vytvorením objektu triedy abc a jeho výstup sa vytlačí.
Pri pokuse o podobný prístup pre metódu neverejnej inštancie čelíme tejto chybe:
Tento program vytvorí nasledujúci výstup:
Preto nie je možné získať prístup k neverejnej inštancii vytvorením objektu. Pre prístup k neverejnej inštancii môžeme zavolať metódu __show1 () z metódy show2 () rovnakej triedy. Tu je návod, ako môžeme zobraziť metódu neverejnej inštancie z verejnej metódy tej istej triedy.
Výkon:
Metódu neverejných inštancií teda nemožno nazvať mimo svojej triedy.
Nepriamy spôsob prístupu k premennej neverejného stupňa
Z legitímnych dôvodov nie sú k neverejným premenným inštancie pristupované mimo triedy, existuje však nepriamy spôsob, ako zmeniť hodnotu neverejnej inštancie a prístup pomocou objektov. Pozrime sa na nasledujúci útržok kódu:
Výkon:
Vo vyššie uvedenom programe máme verejné metódy getNumber (self, num) a displayNumber () a jednu neverejnú premennú inštancie. Pri volaní prvej metódy priradíme hodnotu neverejnej premennej inštancie, ktorá sa volá metóda displayNumber ().
Metóda nastavovača sa používa na nastavenie hodnoty premennej typu non-public. To je užitočné v scenároch, keď budete chcieť zmeniť hodnotu neverejnej inštancie inštancie po vytvorení objektov pre konkrétnu premennú.
Výhody zapuzdrenia v Pythone
Zapuzdrenie pomáha pri vytváraní lepšieho toku údajov a tiež pri ochrane údajov. Koncepcia zapuzdrenia robí kód sebestačným. Zapuzdrenie poskytuje veľkú pomoc na implementačnej úrovni, pretože sa primárne zameriava na otázku „ako“ opúšťa komplex „kedy / kde“ a jeho zložitosti. Skrytie údajov do jednotky uľahčuje zapuzdrenie a tiež zabezpečuje údaje.
Prečo potrebujeme zapuzdrenie v Pythone?
Ďalej uvádzame niekoľko dôvodov, pre ktoré vývojári považujú koncepciu enkapsulácie za užitočnú a prečo sú koncepty zamerané na objekt rozhodujúce vo väčšine programovacích jazykov, ktoré sa používajú v súčasnom scenári.
- Pri každej aplikácii je potrebná dobre definovaná interakcia, pri dosahovaní toho napomáhajú zapuzdrenia.
- Koncept programovania orientácie objektov v pythone sa zameriava na výrobu opakovane použiteľného kódu. Toto je tiež skrátené na DRY (Don't Repeat Yourself).
- Údržba aplikácie je jednoduchšia a je zabezpečená bezpečnosť.
- Zrozumiteľnosť postupu kódovania, keďže vývojári sa musia zaoberať cieľom danej triedy a komplexnosti sa riešia systematicky.
- Správna organizácia kódov pomáha s flexibilitou kódu a tiež pomáha pri testovaní jednotiek.
- Používatelia považujú tento systém za ľahký, pretože sú skrytí od zložitého dizajnu v pozadí.
- Mať všetky podobné údaje na jednom mieste a zapuzdrené zvyšuje súdržnosť vo vnútri modulu.
- Zlepšuje čitateľnosť kódov a zmeny v jednej časti kódu nenarušujú ďalšie časti kódu.
- Zapuzdrenie zabraňuje náhodnému prístupu k časti kódu, ale nie úmyselne, pretože objekty uchovávajú kritické údaje pre aplikácie a mali by sa zmeniť kdekoľvek v kóde.
Záver - Zapuzdrenie v Pythone
Zjednodušene povedané Zapuzdrenie v Pythone znamená, že vnútorná reprezentácia objektu je vo všeobecnosti skrytá pred zobrazením mimo definície objektu. Pomáha to vývojárovi vyvinúť užívateľsky prívetivý zážitok pre koncového používateľa a je zabezpečená ochrana pred narušením bezpečnosti, pretože kódy sú zabezpečené.
Odporúčané články
Toto je sprievodca zapuzdrením v Pythone. Tu diskutujeme potreby enkapsulácie v pythone spolu s jej neverejnými premennými inštancií a metódami inštancií. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Čo je Python
- Je Python objektovo orientovaný
- Vzory v Pythone
- Ako používať zapuzdrenie v C ++?
- Zapuzdrenie do Java Príklady
- Zapuzdrenie v C (pracovné, príklady)
- Úvod do zapuzdrenia v JavaScripte