Översikt över Encapsulation i Python

Inkapsling är ett av de fyra grundläggande begreppen för objektorienterad programmering. När det finns ett krav för att gruppera data, och dess efterföljande subroutiner som samarbetar och fungerar på ett ställe tillsammans med behovet av att dölja de komplexa detaljerna från användaren, använder vi inkapsling för att förstå 'Encapsulation in Python' vi måste djupt djupt och förstå hur Encapsulation kommer in i bilden på ett programmeringsspråk. Inkapsling hjälper till att begränsa åtkomst till metoder och variabler. Förhindrar oavsiktlig datamodifiering, och detta uppnås genom att använda metoden för icke-offentliga instanser och icke-offentliga instanser. Klassen kapslar in metoder och variabler.

Namn Mangling i Python

Python innebär en begränsning av tillgången till data. Det finns inga uttryckliga åtkomstmodifierare men åtkomst kan kontrolleras via Name Mangling i Python. Som standard är alla metoder och variabler offentliga i Python. Så om någon identifierare har två ledande understreck blir det en icke-offentlig instans i Python. Vi skulle här specificera variabler och metoder för icke-offentliga instanser här för att förstå kapsling bättre. Omfånget för metod som inte är offentlig instans ligger bara inom sin egen klass, och den börjar med en understruk eller två understreck, dvs. en enda “_” eller “__” dubbel före en variabel eller en metod. Omfattningen av en icke-offentlig instansvariabel är också i sin egen klass eller med den metod där den definieras och den börjar också med två understreck. Om vi ​​råkar missa de två understreckna betraktas den metoden som en offentlig metod. Innan vi förstår Encapsulation i Python måste vi förstå hur offentliga och icke-offentliga instansvariabler och metoder fungerar.

Icke-offentliga instansvariabler

I Python finns det inget som "privat" eftersom inget attribut verkligen är privat i Python (vi kommer att diskutera det underliggande alternativet senare i artikeln). I stället hänvisar vi till dem som icke-offentliga instansvariabler. Således hänvisar vi till de privata variablerna och privata metoder härmed.

Här är ett litet kodstycke i python för icke-offentliga instansvariabler:

Vi använder självnyckelordet eftersom vi får åtkomst till klassvariabeln. Utgången är:

För att hämta en bekräftelse på omfattningen av den icke-offentliga instansvariabeln lägger vi till utskriften (abc .__ a) till koden:

Och utgången som returneras är:

Således ser vi att vi inte kan använda icke-offentliga instansvariabler utanför klassen.

Metoder för icke-offentliga instanser

En icke-offentlig instansfunktion kan inte kallas direkt på objektet utan bara inom klassen.

I det här kodavsnittet har vi två metoder, en icke-offentlig instans och en annan offentlig metod. Den offentliga metoden kallas lätt genom att skapa ett objekt av klassen abc och sedan skrivs dess utskrifter ut.

När ett liknande tillvägagångssätt försöks för metoden icke-offentlig instans står vi inför följande fel:

Detta program kommer att producera följande utgång:

Därför är det inte möjligt att få tillgång till en metod som inte är offentlig instans genom att skapa objekt. För att få tillgång till metoden icke-offentlig instans kan vi kalla metoden __show1 () från metoden show2 () i samma klass. Så här kan vi visa metoden icke-offentlig instans från den offentliga metoden i samma klass.

Produktion:

Således kan metoden för icke-offentlig instans inte kallas utanför sin klass.

Det indirekta sättet att komma åt variablen för icke-offentliga instanser

Av legitima skäl kan icke-offentliga instansvariabler inte nås utanför klassen, men det finns ett indirekt sätt att ändra värdet på den icke-offentliga instansvariabeln och åtkomst med hjälp av objekt. Vi ska titta på nedanstående kodavsnitt:

Produktion:

I ovanstående program har vi offentliga metoder getNumber (self, num) och displayNumber () och en icke-offentlig instansvariabel. När vi kallar den första metoden tilldelar vi värdet till den icke-offentliga instansvariabeln, och det kallas i metoden displayNummer ().

Setermetoden används för att ställa in värdet på den icke-offentliga instansvariabeln. Detta är användbart i scenarierna när du kanske vill ändra värdet på en icke-offentlig instansvariabel efter skapandet av objekt för en specifik variabel.

Fördelar med inkapsling i Python

Inkapsling hjälper till att skapa ett bättre flöde av data, och även skyddet av uppgifterna. Begreppet kapsling gör koden självförsörjande. Inkapsling ger en stor hjälp på implementeringsnivå eftersom den främst fokuserar på frågan "hur" lämnar komplexet "när / var" och dess komplexitet bakom. Om du döljer data i en enhet blir inkapslingen enklare och säkrar också data.

Varför behöver vi inkapsling i Python?

Nedan finns flera listade skäl till varför utvecklarna skulle hitta konceptet för inkapsling praktiskt och varför de objektorienterade koncepterna styr på de flesta programmeringsspråk som körs i dagens scenario.

  • Det finns ett behov av väldefinierad interaktion i varje applikation, kapslingar hjälper till att uppnå det.
  • Begreppet objektorienteringsprogrammering i python fokuserar på att göra återanvändbar kod. Detta är också förkortat som Torkat (repetera inte dig själv).
  • Att underhålla applikationen är enklare och det garanteras säkerhet.
  • Tydlighet i kodningsproceduren som utvecklare ska beröras i syftet med klassen och komplexiteten hanteras systematiskt.
  • Korrekt organisering av koderna hjälper till med kodens flexibilitet och hjälper också till i enhetstestning.
  • Användare tycker att det är enkelt att använda systemet eftersom de är gömda bort från den komplexa designen som ingår i backend.
  • Att ha all liknande data på ett ställe och inkapslad ökar sammanhållningen i en modul.
  • Förbättrar kodernas läsbarhet och ändringar i en del av koden stör inte andra delar av koden.
  • Inkapsling förhindrar att delen av koden nås av misstag, men inte avsiktligt eftersom objekt har kritisk data för applikationer och den bör ändras var som helst i koden.

Slutsats - Inkapsling i Python

I enklare termer betyder kapsling i Python att den interna representationen av ett objekt i allmänhet är dold från vyn utanför objektets definition. Detta hjälper utvecklaren att utveckla en användarvänlig upplevelse för slutanvändaren och det finns skydd mot ett säkerhetsbrott eftersom koderna är säkrade.

Rekommenderade artiklar

Detta är en guide till Encapsulation in Python. Här diskuterar vi behoven för inkapsling i python tillsammans med dess icke-offentliga instansvariabler och instansmetoder. Du kan också titta på följande artiklar för att lära dig mer -

  1. Vad är Python
  2. Är Python objektorienterad
  3. Mönster i Python
  4. Hur använder man kapsling i C ++?
  5. Inkapsling i Java | exempel
  6. Inkapsling i C (Working, Exempel)
  7. Introduktion till Encapsulation i JavaScript

Kategori: