Katsaus Pythonin kapselointiin

Kapselointi on yksi objektorientoidun ohjelmoinnin neljästä peruskonseptista. Kun on tarpeen ryhmitellä tietoja ja sen myöhempiä aliohjelmia, jotka toimivat yhdessä ja toimivat yhdessä paikassa, sekä tarpeen piilottaa monimutkaiset yksityiskohdat käyttäjältä, käytämme kapselointia ymmärtääksesi "kapselointi Pythonissa", joka meidän täytyy sukeltaa syvälle ja ymmärtää miten kapselointi tulee kuvaan ohjelmointikielellä. Kotelointi auttaa rajoittamaan pääsyä menetelmille ja muuttujille. Estää mahdolliset tietojen muutokset, ja tämä saavutetaan käyttämällä ei-julkista tapausmuuttujaa ja ei-julkista kohtausmuuttujaa. Luokka kapseloi menetelmät ja muuttujat.

Nimi Mangling Pythonissa

Python tarkoittaa tietojen saatavuuden rajoitusta. Ei ole nimenomaisia ​​käyttöoikeuksien muokkaimia, mutta pääsyä voidaan hallita Python-palvelun Name Mangling -sovelluksella. Oletuksena kaikki menetelmät ja muuttujat ovat julkisia Pythonissa. Joten jos jollakin tunnisteella on kaksi johtavaa alaviivaa, siitä tulee ei-julkinen ilmentymä Pythonissa. Määrittäisimme tässä ei-julkiset instanssimuuttujat ja menetelmät ymmärtämään kapseloinnin paremmin. Ei-julkisen esiintymän menetelmän laajuus on vain omassa luokassaan, ja se alkaa yhdellä alaviivalla tai kahdella alaviivalla, ts. Yhdellä “_” tai “__” kaksoismerkillä ennen muuttujaa tai menetelmää. Ei-julkisen esiintymämuuttujan laajuus on myös omassa luokassaan tai määrittelemälläsi menetelmällä, ja se alkaa myös kahdella alaviivalla. Jos tapaamme ohittaa kaksi alaviivaa, tätä menetelmää pidetään julkisena menetelmänä. Ennen kuin ymmärrämme kapselointia Pythonissa, meidän on ymmärrettävä, kuinka julkiset ja ei-julkiset ilmentymät muuttujat ja menetelmät toimivat.

Ei-julkiset muuttujat

Pythonissa ei ole termiä “yksityinen”, koska mikään attribuutti ei ole oikeastaan ​​yksityinen Pythonissa (Keskustelemme taustalla olevasta vaihtoehdosta myöhemmin artikkelissa). Sen sijaan kutsumme niitä ei-julkiseksi instanssimuuttujaksi. Näin kutsumme tässä yksityisiä muuttujia ja yksityisiä menetelmiä.

Tässä on pieni katkelma koodista pythonissa ei-julkisille ilmentymimuuttujille:

Käytämme itse avainsanaa, koska pääsemme luokkamuuttujaan. Tuotos on:

Hakemme vahvistuksen ei-julkisen esiintymämuuttujan laajuudesta lisäämällä tulosteen (abc .__ a) koodiin:

Ja palautettu tulos on:

Siksi näemme, että emme voi käyttää ei-julkisia esiintymämuuttujia luokan ulkopuolella.

Ei-julkiset tapausmenetelmät

Ei-julkista instanssitoimintoa ei voida kutsua suoraan objektiin, vaan vain luokan sisällä.

Tässä koodinpätkässä on kaksi tapaa, yksi ei-julkinen ilmentymä ja toinen julkinen menetelmä. Julkista menetelmää kutsutaan helposti luomalla luokan abc kohde ja sen tulos tulostetaan.

Kun samanlaista lähestymistapaa yritetään ei-julkisen ilmentymän menetelmällä, kohtaamme seuraavan virheen:

Tämä ohjelma tuottaa seuraavan tuloksen:

Siksi ei-julkiseen instanssimenetelmään ei voida päästä luomalla objektia. Päästäksemme ei-julkiseen instanssimenetelmään voimme kutsua __show1 () -menetelmää saman luokan show2 () -menetelmästä. Näin voimme näyttää ei-julkisen ilmentymän menetelmän saman luokan julkisesta menetelmästä.

lähtö:

Siten ei-julkista esiintymistä ei voida kutsua luokansa ulkopuolelle.

Epäsuora tapa päästä ei-julkiseen instanssimuuttujaan

Ei-julkisiin ilmentymimuuttujiin ei voida laillisista syistä päästä luokan ulkopuolelle, mutta epäsuoralla tavalla voidaan muuttaa ei-julkisen ilmentymän muuttujan arvoa ja pääsyä objektien avulla. Tarkastellaan alla olevaa koodinpätkää:

lähtö:

Yllä olevassa ohjelmassa meillä on julkiset menetelmät getNumber (itse, num) ja displayNumber () ja yksi ei-julkinen esiintymämuuttuja. Kun kutsutaan ensimmäistä menetelmää, annamme arvon ei-julkiselle instanssimuuttujalle, jota kutsutaan displayNumber () -menetelmässä.

Asettajamenetelmää käytetään ei-julkisen esiintymämuuttujan arvon asettamiseen. Tästä on hyötyä tilanteissa, joissa haluat muuttaa ei-julkisen esiintymämuuttujan arvoa sen jälkeen kun objektit on luotu tietylle muuttujalle.

Kapseloinnin edut Pythonissa

Kapselointi auttaa parantamaan tiedonkulkua ja myös tietojen suojausta. Kapseloinnin käsite tekee koodista omavaraisen. Kapselointi tarjoaa suurta apua toteutustasolla, koska se keskittyy ensisijaisesti kysymykseen "miten" jättäen kompleksin "milloin / missä" ja sen monimutkaisuudet taakse. Tietojen piilottaminen yksiköksi helpottaa kapselointia ja turvaa myös datan.

Miksi tarvitsemme kapselointia Pythoniin?

Seuraavassa on lueteltu useita syitä, miksi kehittäjät pitivät kapseloinnin käsitettä kätevänä ja miksi oliokeskeiset käsitteet hallitsevat useimmissa nykypäivän skenaariossa toimivissa ohjelmointikielissä.

  • Jokaisessa sovelluksessa tarvitaan tarkkaan määriteltyä vuorovaikutusta, kapseloinnit auttavat sitä saavuttamaan.
  • Object Orientation Programming -konsepti pythonissa keskittyy uudelleenkäytettävän koodin tekemiseen. Tätä lyhennetään myös nimellä DRY (Älä toista itseäsi).
  • Sovelluksen ylläpito on helpompaa ja turvallisuus varmistetaan.
  • Koodausmenettelyn selkeys kehittäjien tulee olla kiinnostuneita luokan tavoitteista ja monimutkaisuuksia käsitellään systemaattisesti.
  • Koodien oikea järjestäminen auttaa koodin joustavuudessa ja auttaa myös yksikkötestauksessa.
  • Käyttäjien on helppo käyttää järjestelmää, koska ne ovat piilossa taustan taustalla olevasta monimutkaisesta suunnittelusta.
  • Kaikkien samanlaisten tietojen sijoittaminen yhteen paikkaan ja kapseloituna lisää koheesiota moduulin sisällä.
  • Parantaa koodien luettavuutta, ja muutokset koodin yhdessä osassa eivät häiritse koodin muita osia.
  • Kapselointi estää koodin osan pääsyn vahingossa, mutta ei tarkoituksella, koska esineillä on kriittinen data sovelluksille ja se tulisi muuttaa missä tahansa koodissa.

Johtopäätös - kapselointi Pythoniin

Yksinkertaistettuna kapselointi Pythonissa tarkoittaa, että objektin sisäinen esitys on yleensä piilotettu näkymästä objektin määritelmän ulkopuolella. Tämä auttaa kehittäjää kehittämään käyttäjäystävällisen kokemuksen loppukäyttäjälle ja suojaa tietoturvaloukkoilta, koska koodit tehdään suojatuiksi.

Suositellut artikkelit

Tämä on opas kapselointiin Pythonissa. Tässä keskustellaan pythonin kapseloinnin tarpeista yhdessä sen ei-julkisten instanssimuuttujien ja instanssimenetelmien kanssa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Mikä on Python
  2. Onko Python-objekti suuntautunut
  3. Kuviot Pythonissa
  4. Kuinka käyttää kapselointia C ++: ssa?
  5. Kapselointi Java | esimerkit
  6. Kapselointi C: hen (työskentely, esimerkit)
  7. Johdatus kapselointiin JavaScriptiin