Overzicht van inkapseling in Python

Inkapseling is een van de vier fundamentele concepten van objectgeoriënteerd programmeren. Wanneer er een vereiste is om gegevens te groeperen, en de daaropvolgende subroutines die samenwerken en op één plek werken, samen met de noodzaak om de complexe details voor de gebruiker te verbergen, gebruiken we encapsulation om 'Encapsulation in Python' te begrijpen, moeten we diep duiken en begrijpen hoe Encapsulation in een programmeertaal in beeld komt. Inkapseling helpt bij het beperken van de toegang tot methoden en variabelen. Voorkomen van accidentele gegevenswijziging, en dit wordt bereikt door de niet-openbare instanties Variabele en niet-openbare instanties Variabele methoden te gebruiken. De klasse omvat de methoden en variabelen.

Naam Mangling in Python

Python impliceert een beperking van de toegang tot gegevens. Er zijn geen expliciete toegangsmodificatoren, maar toegang kan worden beheerd via Name Mangling in Python. Standaard zijn alle methoden en variabelen openbaar in Python. Dus als een identifier twee belangrijke onderstrepingstekens heeft, wordt het een niet-openbare instantie in Python. We zouden hier niet-openbare instantie variabelen en methoden specificeren om inkapseling beter te begrijpen. De reikwijdte van de niet-openbare instantiemethode valt alleen binnen de eigen klasse en begint met één onderstrepingsteken of twee onderstrepingstekens, dwz enkele dubbele “_” of “__” vóór een variabele of een methode. Het bereik van een niet-openbare instantie variabele is ook in zijn eigen klasse of door de methode waarin deze is gedefinieerd en begint ook met twee onderstrepingstekens. Als we de twee onderstrepingstekens missen, wordt die methode als een openbare methode beschouwd. Voordat we Encapsulation in Python begrijpen, moeten we begrijpen hoe variabelen en methoden van openbare en niet-openbare instanties werken.

Variabelen voor niet-openbare instanties

In Python is er geen term als 'privé', aangezien geen kenmerk echt privé is in Python (we zullen het onderliggende alternatief later in het artikel bespreken). In plaats daarvan verwijzen we naar deze variabelen als niet-openbare instantie. Dat is hoe we hierbij de private variabelen en private methoden zouden verwijzen.

Hier is een klein fragment van de code in python voor variabelen van niet-openbare instanties:

We gebruiken het zelfzoekwoord omdat we toegang hebben tot de klassenvariabele. De output is:

Om een ​​bevestiging van de reikwijdte van de variabele van de niet-openbare instantie op te halen, voegen we de afdruk (abc .__ a) toe aan de code:

En de geretourneerde output is:

We zien dus dat we geen variabelen van niet-openbare instanties buiten de klasse kunnen gebruiken.

Niet-openbare instanties

Een niet-openbare instantiefunctie kan niet rechtstreeks op het object worden aangeroepen, maar alleen binnen de klasse.

In dit codefragment hebben we twee methoden, een niet-openbare instantie en een andere openbare methode. De openbare methode wordt gemakkelijk aangeroepen door een object van de klasse abc te maken en vervolgens wordt de uitvoer ervan afgedrukt.

Wanneer een vergelijkbare aanpak wordt geprobeerd voor de niet-openbare instantiemethode, zien we de volgende fout:

Dit programma zal de volgende uitvoer produceren:

Daarom is het niet mogelijk om toegang te krijgen tot een niet-openbare instantiemethode door het maken van objecten. Om toegang te krijgen tot de niet-openbare exemplaarmethode, kunnen we de methode __show1 () aanroepen vanuit de methode show2 () van dezelfde klasse. Hier is hoe we de niet-openbare instantiemethode van de openbare methode van dezelfde klasse kunnen weergeven.

Output:

De methode van niet-openbare instanties kan dus niet buiten zijn klasse worden aangeroepen.

De indirecte manier om toegang te krijgen tot de variabele voor niet-openbare instanties

Om legitieme redenen zijn niet-openbare variabelen toegankelijk buiten de klasse, maar er is een indirecte manier om de waarde van de variabele van de niet-openbare instantie en toegang te wijzigen met behulp van objecten. We zullen het onderstaande codefragment bekijken:

Output:

In het bovenstaande programma hebben we openbare methoden getNumber (self, num) en displayNumber () en één variabele voor niet-openbare instanties. Bij het aanroepen van de eerste methode wijzen we de waarde toe aan de variabele van de niet-openbare instantie, en dat wordt de methode displayNumber () genoemd.

De setter-methode wordt gebruikt om de waarde van de variabele van de niet-openbare instantie in te stellen. Dit is handig in de scenario's wanneer u de waarde van een variabele voor een niet-openbare instantie wilt wijzigen nadat u objecten voor een specifieke variabele hebt gemaakt.

Voordelen van inkapseling in Python

Inkapseling helpt bij het tot stand brengen van een betere gegevensstroom, en ook de bescherming van de gegevens. Het concept van inkapseling maakt de code zelfvoorzienend. Inkapseling biedt een grote hulp op het implementatieniveau omdat het zich primair richt op de vraag "hoe" het complex verlaten "wanneer / waar" en de complexiteit ervan. Door de gegevens in een eenheid te verbergen, wordt de inkapseling eenvoudiger en worden de gegevens ook beveiligd.

Waarom hebben we inkapseling nodig in Python?

Hieronder staan ​​enkele opgesomde redenen waarom ontwikkelaars het concept van inkapseling handig zouden vinden en waarom de objectgeoriënteerde concepten gelden in de meeste programmeertalen die in het huidige scenario worden uitgevoerd.

  • Er is behoefte aan goed gedefinieerde interactie in elke toepassing, inkapselingen helpen daarbij.
  • Het concept van Object Orientation Programming in python richt zich op het maken van herbruikbare code. Dit wordt ook afgekort als DRY (Don't Repeat Yourself).
  • Het onderhoud van de applicatie is eenvoudiger en er is beveiliging gewaarborgd.
  • Duidelijkheid over de coderingsprocedure, aangezien ontwikkelaars zich bezig moeten houden met het doel van de klasse en de complexiteit systematisch wordt aangepakt.
  • Een juiste organisatie van de codes helpt bij de flexibiliteit van de code en helpt ook bij het testen van eenheden.
  • Gebruikers vinden het gemakkelijk om het systeem te gebruiken omdat ze verborgen zijn voor het complexe ontwerp van de backend.
  • Als alle vergelijkbare gegevens op één plaats en ingekapseld zijn, wordt de samenhang binnen een module vergroot.
  • Verbetert de leesbaarheid van de codes en wijzigingen in een deel van de code verstoren andere delen van de code niet.
  • Inkapseling voorkomt dat per ongeluk toegang wordt verkregen tot het deel van de code, maar niet opzettelijk omdat objecten kritieke gegevens bevatten voor toepassingen en deze ergens in de code moeten worden gewijzigd.

Conclusie - inkapseling in Python

In eenvoudiger bewoordingen betekent inkapseling in Python dat de interne weergave van een object over het algemeen buiten de weergave van de definitie van het object verborgen is. Dit helpt de ontwikkelaar om een ​​gebruikersvriendelijke ervaring voor de eindgebruiker te ontwikkelen en er is bescherming tegen een inbreuk op de beveiliging terwijl de codes worden beveiligd.

Aanbevolen artikelen

Dit is een gids voor inkapseling in Python. Hier bespreken we de behoeften van inkapseling in python, samen met de niet-openbare instance-variabelen en instance-methoden. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Wat is Python
  2. Is Python object georiënteerd
  3. Patronen in Python
  4. Hoe encapsulation in C ++ te gebruiken?
  5. Inkapseling in Java | Voorbeelden
  6. Inkapseling in C (werken, voorbeelden)
  7. Inleiding tot inkapseling in JavaScript