Kapseldamise ülevaade Pythonis

Kapseldamine on üks objektorienteeritud programmeerimise neljast põhikontseptsioonist. Kui on vaja andmeid rühmitada ja sellele järgnenud alamprogrammid, mis teevad koostööd ja toimivad ühes kohas koos vajadusega peita keerukaid detaile kasutaja eest, kasutame kapseldamist, et mõista „kapseldamine Pythonis”, peame sügavale sukelduda ja aru saada kuidas kapseldus programmeerimiskeeles pildile tuleb. Kapseldamine aitab piirata juurdepääsu meetoditele ja muutujatele. Andmete juhusliku muutmise vältimine ja see saavutatakse mitteavaliku astme muutuja ja mitteavaliku astme muutuja meetodite abil. Klass sisaldab meetodeid ja muutujaid.

Nimi Mangling Pythonis

Python tähendab andmetele juurdepääsu piiramist. Selgesõnalisi juurdepääsu modifikaatoreid pole, kuid juurdepääsu saab Pythonis nime Mangling kaudu juhtida. Vaikimisi on Pythonis kõik meetodid ja muutujad avalikud. Nii et kui mõnel identifikaatoril on kaks juhtivat alljoont, muutub see Pythonis mitteavalikuks eksemplariks. Kapseldamise paremaks mõistmiseks täpsustaksime siin mitteavalikud esinemismuutujad ja meetodid. Mitteavaliku eksemplari meetodi ulatus on ainult tema enda klassis ja see algab ühe allajoone või kahe allajoonega, st ühe muutuja või meetodi ees topelt “_” või “__”. Mitteavaliku eksemplari muutuja ulatus on samuti oma klassis või määratletud meetodi järgi ning see algab ka kahe allkriipsuga. Kui juhtub, et kahest alljoonest kahe silma vahele jätame, peetakse seda meetodit avalikuks meetodiks. Enne, kui mõistame Pythoni kapseldamisest, peame mõistma, kuidas avaliku ja mitteavaliku astme muutujad ja meetodid toimivad.

Mitteavalikud astmemuutujad

Pythonis pole terminit “privaatne”, kuna ükski atribuut pole Pythonis tegelikult privaatne (selle aluseks olevat alternatiivi käsitleme artiklis hiljem). Selle asemel nimetame neid mitteavalikuks muutujaks. Nii nimetaksime siin eramuutujaid ja privaatseid meetodeid.

Siin on väike fragment koodist python mitteavalike esinemismuutujate jaoks:

Me kasutame ise märksõna, sest meil on juurdepääs klassimuutujale. Väljund on:

Mitteavaliku eksemplari muutuja ulatuse kinnituse saamiseks lisame koodile print (abc .__ a):

Ja tagastatud väljund on:

Seega näeme, et me ei saa väljaspool klassi kasutada mitteavalikke astmemuutujaid.

Ametikohtade mitteavalikud meetodid

Mitteavalikku eksemplari funktsiooni ei saa objektile otse kutsuda, vaid ainult klassi piires.

Selles koodilõikes on kaks meetodit: üks mitteavalik eksemplari ja teine ​​avalik meetod. Avalikku meetodit saab hõlpsalt kutsuda, luues klassi abc objekti ja seejärel trükitakse selle väljund.

Sarnase lähenemisviisi proovimisel mitteavaliku astme meetodi korral seisame silmitsi järgmise veaga:

See programm annab järgmise väljundi:

Seetõttu pole objektide loomisega juurdepääsu mitteavalikule eksemplari meetodile. Mitteavaliku eksemplari meetodile pääsemiseks võime sama klassi meetodist show2 () kutsuda __show1 () meetodi. Nii saame kuvada mitteavaliku esinemisviisi meetodit sama klassi avalikust meetodist.

Väljund:

Seega ei saa mitteavaliku astme meetodit nimetada väljaspool selle klassi.

Kaudne viis juurdepääsule mitteavalikule muutujale

Mõistlikel põhjustel ei ole avalikele esinemismuutujatele juurdepääsu klassist kaugemale, kuid mitteavaliku esinemismuutuja väärtuse ja objektide abil juurdepääsu muutmiseks on kaudne võimalus. Vaatame allpool olevat koodilõiku:

Väljund:

Ülaltoodud programmis on meil avalikud meetodid getNumber (ise, num) ja displayNumber () ning üks mitteavalik esinemismuutuja. Esimese meetodi kutsumisel omistame väärtuse mitteavalikule esinemismuutujale ja seda nimetatakse meetodil displayNumber ().

Mitteavaliku esinemismuutuja väärtuse määramiseks kasutatakse setteri meetodit. See on abiks stsenaariumides, kui võiksite pärast konkreetse muutuja jaoks objektide loomist muuta mitteavaliku esinemismuutuja väärtust.

Kapseldamise eelised Pythonis

Kapseldamine aitab luua paremat andmevoogu ja kaitsta neid. Kapseldamise kontseptsioon muudab koodi iseseisvaks. Kapseldamine on rakenduse tasandil suureks abiks, kuna see keskendub peamiselt küsimusele “kuidas”, jättes kompleksi “millal / kuhu” ja selle keerukuse taha. Andmete ühikusse peitmine hõlbustab kapseldamist ja kindlustab ka andmete turvalisuse.

Miks on meil vaja kapseldamist Pythonis?

Allpool on toodud mitmed põhjused, miks arendajad leiaksid kapseldumise mõiste käepäraseks ja miks valitsevad enamikes tänapäeva stsenaariumis töötavates programmeerimiskeeltes objektorienteeritud kontseptsioonid.

  • Igas rakenduses on vaja täpselt määratletud interaktsiooni, kapslid on selle saavutamisel abiks.
  • Objektiorienteerimise programmeerimise kontseptsioon pythonis keskendub korduvkasutatava koodi valmistamisele. Seda lühendatakse ka kuivaks (Ärge korrake ennast).
  • Rakenduse hooldamine on lihtsam ja turvalisus tagatud.
  • Koodimisprotseduuri selgus, kuna arendajad peavad tundma klassi eesmärki ja keerukusega tegeletakse süstemaatiliselt.
  • Koodide korrektne korraldamine aitab kaasa koodide paindlikkusele ja aitab ka ühiku testimisel.
  • Kasutajatel on süsteemi kasutamine lihtne, kuna nad on varjatud taustprogrammi keeruka kujunduse eest.
  • Kui kõik sarnased andmed on ühes kohas ja kapseldatud, suurendab see mooduli sisemist ühtekuuluvust.
  • Parandab koodide loetavust ja muudatused koodi ühes osas ei häiri koodi muid osi.
  • Kapseldamine takistab koodi osa juurdepääsu juhuslikul kasutamisel, kuid mitte tahtlikult, kuna objektidel on rakenduste jaoks kriitilisi andmeid ja seda tuleks koodis kõikjal muuta.

Järeldus - kapseldamine Pythonis

Lihtsamalt öeldes tähendab kapseldamine Pythonis objekti sisemist kujutist, mis on tavaliselt väljaspool objekti määratlust peidetud. See aitab arendajal arendada lõppkasutaja jaoks kasutajasõbralikku kogemust ning turvakurjete eest on kaitstud, kuna koodid on muudetud turvaliseks.

Soovitatavad artiklid

See on juhend kapseldamise kohta Pythonis. Siin käsitleme pütooni kapseldamise vajadusi koos selle mitteavalike astmemuutujate ja esinemismeetoditega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Mis on Python
  2. Kas Python objekt on orienteeritud
  3. Mustrid Pythonis
  4. Kuidas kasutada kapseldamist C ++ -s?
  5. Kapseldamine Java | Näited
  6. Kapseldamine C-s (töö, näited)
  7. Sissejuhatus kapseldamisse JavaScripti

Kategooria: