Oversikt over innkapsling i Python

Innkapsling er en av de fire grunnleggende konseptene for objektorientert programmering. Når det er krav om å gruppere data, og dens påfølgende subroutines som samarbeider og fungerer på ett sted sammen med behovet for å skjule de komplekse detaljene for brukeren, bruker vi innkapsling for å forstå 'Innkapsling i Python' vi trenger å dykke dypt og forstå hvordan Innkapsling kommer inn i bildet på et programmeringsspråk. Innkapsling hjelper til med å begrense tilgangen til metoder og variabler. Forhindrer utilsiktet datamodifisering, og dette oppnås ved å bruke ikke-offentlige forekomstvariabler og ikke-offentlige forekomstvariabler. Klassen omslutter metodene og variablene.

Navn Mangling i Python

Python innebærer en begrensning i tilgangen til data. Det er ingen eksplisitte tilgangsmodifiserere, men tilgangen kan kontrolleres via Name Mangling i Python. Som standard er alle metoder og variabler offentlige i Python. Så hvis noen identifikator har to ledende understrekinger, blir det en ikke-offentlig instans i Python. Vi vil spesifisere ikke-offentlige forekomstvariabler og metoder her for å forstå innkapsling bedre. Omfanget av ikke-offentlig forekomstmetode er bare innenfor sin egen klasse, og den starter med ett understrek eller to understrekinger, dvs. enkelt “_” eller “__” dobbelt før en variabel eller en metode. Omfanget av en ikke-offentlig forekomstvariabel er også i sin egen klasse eller etter metoden den er definert i, og den starter også med to understrekinger. Hvis vi tilfeldigvis går glipp av de to understrekningene, blir den metoden betraktet som en offentlig metode. Før vi forstår Innkapsling i Python, må vi forstå hvordan offentlige og ikke-forekomstvariabler og -metoder fungerer.

Ikke-offentlige forekomstvariabler

I Python er det ikke noe begrep som “privat”, da ingen attributter virkelig er private i Python (Vi vil diskutere det underliggende alternativet senere i artikkelen). I stedet omtaler vi dem som ikke-offentlige forekomstvariabler. Det er slik vi vil henvise til private variabler og private metoder.

Her er en liten kodestykke i python for variabler som ikke er offentlige instanser:

Vi bruker selvnøkkelordet fordi vi får tilgang til klassevariabelen. Utgangen er:

For å hente en bekreftelse på omfanget av den ikke-offentlige forekomstvariabelen legger vi til utskriften (abc .__ a) til koden:

Og resultatet som returneres er:

Dermed ser vi at vi ikke kan bruke ikke-offentlige instansvariabler utenfor klassen.

Metoder for ikke-offentlige forekomster

En ikke-offentlig instansfunksjon kan ikke kalles objektet direkte, men bare i klassen.

I dette kodebiten har vi to metoder, en ikke-offentlig instans og en annen offentlig metode. Den offentlige metoden kalles enkelt ved å lage et objekt av klassen abc og deretter blir utskriften skrevet ut.

Når en lignende tilnærming blir prøvd for metoden som ikke er offentlig, står vi overfor følgende feil:

Dette programmet vil produsere følgende output:

Derfor er det ikke mulig å få tilgang til en ikke-offentlig forekomstmetode ved å lage objekter. For å få tilgang til ikke-offentlig forekomstmetode kan vi kalle __show1 () -metoden fra show2 () -metoden i samme klasse. Slik kan vi vise metoden for ikke-offentlig forekomst fra den offentlige metoden av samme klasse.

Produksjon:

Dermed kan ikke den ikke-offentlige forekomstmetoden kalles utenfor sin klasse.

Den indirekte måten å få tilgang til variabelen for ikke-offentlige forekomster

Av legitime grunner kan ikke variabler for ikke-offentlige instanser nås utenfor klassen, men det er en indirekte måte å endre verdien på variabelen for ikke-offentlige instanser og tilgang ved hjelp av objekter. Vi skal se på kodebiten nedenfor:

Produksjon:

I programmet ovenfor har vi offentlige metoder getNumber (self, num) og displayNumber () og en ikke-offentlig forekomstvariabel. Når vi kaller den første metoden, tilordner vi verdien til variabelen som ikke er offentlig forekomst, og den kalles i displayNumber () -metoden.

Setermetoden brukes til å angi verdien av variabelen som ikke er offentlig. Dette er nyttig i scenariene når du kanskje vil endre verdien på en ikke-offentlig forekomstvariabel etter opprettelse av objekter for en bestemt variabel.

Fordeler med innkapsling i Python

Innkapsling hjelper med å etablere en bedre flyt av data, og også beskyttelsen av dataene. Innkapslingsbegrepet gjør koden selvforsynt. Innkapsling gir en stor hjelp på implementeringsnivå da den først og fremst fokuserer på spørsmålet “hvordan” etterlater komplekset “når / hvor” og dets kompleksiteter bak. Å skjule dataene i en enhet gjør innkapslingen enklere og sikrer også dataene.

Hvorfor trenger vi Innkapsling i Python?

Nedenfor er flere oppførte årsaker til at utviklere vil finne konseptet med innkapsling praktisk, og hvorfor de objektorienterte konseptene hersker i de fleste programmeringsspråk som kjører i dagens scenario.

  • Det er behov for veldefinert samhandling i alle applikasjoner, innkapslinger hjelper deg med å oppnå det.
  • Konseptet med objektorienteringsprogrammering i python fokuserer på å lage gjenbrukbar kode. Dette er også forkortet som DRY (Ikke gjenta deg selv).
  • Vedlikehold av applikasjonen er enklere og det er sikkerhet sikret.
  • Tydeligheten av kodingsprosedyren som utviklere skal være bekymret for målet med klassen, og kompleksitetene blir behandlet systematisk.
  • Riktig organisering av kodene hjelper med fleksibiliteten i koden og hjelper også til i enhetstesting.
  • Brukere synes det er enkelt å bruke systemet da de er gjemt bort fra den komplekse designen som er involvert i backend.
  • Å ha alle lignende data på ett sted og innkapslet, øker samholdet i en modul.
  • Forbedrer lesbarheten til kodene og endringer i en del av koden forstyrrer ikke andre deler av koden.
  • Innkapsling forhindrer tilgang til delen av koden ved et uhell, men ikke med vilje ettersom objekter inneholder kritiske data for applikasjoner og den bør endres hvor som helst i koden.

Konklusjon - Innkapsling i Python

På enklere vilkår Innkapsling i Python betyr at den interne representasjonen av et objekt generelt er skjult for utsikten utenfor objektets definisjon. Dette hjelper utvikleren med å utvikle en brukervennlig opplevelse for sluttbrukeren, og det er beskyttelse mot sikkerhetsbrudd ettersom kodene er sikret.

Anbefalte artikler

Dette er en guide til Encapsulation in Python. Her diskuterer vi behovene for innkapsling i python sammen med ikke-offentlige forekomstvariabler og forekomstmetoder. Du kan også se på følgende artikler for å lære mer -

  1. Hva er Python
  2. Er Python objektorientert
  3. Mønstre i Python
  4. Hvordan bruke innkapsling i C ++?
  5. Innkapsling i Java | eksempler
  6. Innkapsling i C (Working, eksempler)
  7. Introduksjon til Encapsulation i JavaScript