Datenkapselung
Python hosting: Host, run, and code Python in the cloud!
Datenkapselung in Python
Datenkapselung ist ein zentrales Konzept in der Programmierung, besonders in Python. Durch die Begrenzung des Zugriffs auf Methoden und Variablen in einem Python-Programm können wir sicherstellen, dass Daten nicht unabsichtlich geändert werden. Dies ist besonders wichtig in objektorientierter Programmierung und Klassen, während es bei Funktionen nicht direkt anwendbar ist.
Related Course: Python Programming Bootcamp: Go from zero to hero
Private Methoden in Python
Betrachten Sie das Beispiel einer Car
Klasse mit zwei Methoden: drive()
und __updateSoftware()
. Wenn wir ein Objekt dieser Klasse erstellen, wird automatisch die private Methode __updateSoftware()
aufgerufen.
Beachten Sie, dass private Methoden in Python mit zwei Unterstrichen vor dem Methodennamen gekennzeichnet sind. Diese Methoden können nicht direkt von einem Objekt aus aufgerufen werden, sondern nur innerhalb der Klasse selbst.
1 | #!/usr/bin/env python |
Die Methode __updateSoftware()
ist privat und kann nur innerhalb der Car
Klasse aufgerufen werden, nicht von außerhalb.
Private Variablen in Python
So wie es private Methoden gibt, gibt es auch private Variablen in Python. Diese Variablen können nur innerhalb der Klasse geändert werden, in der sie definiert sind.
Ein Hauptgrund für private Variablen ist die Sicherheit: Sie können wichtige Informationen speichern, die nicht ohne spezifische Klassenmethoden geändert werden sollten.
1 | #!/usr/bin/env python |
Wenn Sie den Wert einer privaten Variable ändern möchten, können Sie eine setter Methode verwenden. Ein setter ermöglicht es, den Wert einer privaten Variable sicher zu ändern.
1 | #!/usr/bin/env python |
Zusammenfassung der Datenkapselung in Python
In Python haben wir:
- Private Variablen
- Private Methoden
- Öffentliche Variablen
- Öffentliche Methoden
Es ist erwähnenswert, dass einige andere Programmiersprachen zusätzlich geschützte (“protected”) Methoden und Variablen haben, aber Python hat diese Unterscheidung nicht.
Leave a Reply: