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 -

  1. Čo je Python
  2. Je Python objektovo orientovaný
  3. Vzory v Pythone
  4. Ako používať zapuzdrenie v C ++?
  5. Zapuzdrenie do Java Príklady
  6. Zapuzdrenie v C (pracovné, príklady)
  7. Úvod do zapuzdrenia v JavaScripte

Kategórie: