Sobes.tech
Middle+

Wie wird Kapselung in Python umgesetzt? Erzähl mir von Zugriffsmethoden.

sobes.tech KI

Antwort von AI

In Python wird Kapselung durch Namenskonventionen und Eigenschaften von Klassen umgesetzt, da es keine strengen Zugriffsmodifikatoren wie in anderen Sprachen (private, protected, public) gibt.

  • Öffentliche Attribute und Methoden — Namen ohne Unterstriche, überall zugänglich.
  • Geschützte (protected) — Namen mit einem führenden Unterstrich _var. Es ist eine Konvention, dass das Attribut oder die Methode für den internen Gebrauch bestimmt ist, aber technisch von außen zugänglich ist.
  • Private (private) — Namen mit zwei führenden Unterstrichen __var. Python wendet Namens-Mangling an, indem es den Namen des Attributs innerhalb der Klasse ändert, um den Zugriff von außen zu erschweren.

Beispiel:

class MyClass:
    def __init__(self):
        self.public = "für alle zugänglich"
        self._protected = "empfohlen, außerhalb der Klasse und Erben nicht zu verwenden"
        self.__private = "vor direktem Zugriff verborgen"

obj = MyClass()
print(obj.public)        # funktioniert
print(obj._protected)    # funktioniert, wird aber nicht empfohlen
# print(obj.__private)   # führt zu einem Fehler
print(obj._MyClass__private)  # Zugriff durch Namens-Mangling

Daher ist Kapselung in Python eher eine Vereinbarung und ein Mechanismus des Manglings, nicht strikte Zugriffsmodifikatoren.