Glossar zur Objektorientierung mit Python

<== Zur Übersicht der Begriffe ==>


Kapselung


In der Objektorientierung ist das Ziel bei der Kapselung, dass der Zustand eines Objektes nicht durch einen direkten Zugriff auf eines seiner Attribute verändert werden kann, sondern nur über eine vom Programmentwickler vorgesehene set-Methode oder verändernde Methode.

Bei Python kann man - mit gewissen Einschränkungen - Attribute dadurch gegen einen direkten Zugriff von außen absichern, dass man ihren Namen mit zwei Unterstreichungsstrichen beginnen lässt.

Hinweis: Die Kapselung ist ein Konzept, dass nicht nur in der Objektorientierung berücksichtigt wird.
Kapselung in der funktionalen Programmierung beispielsweise bedeutet, dass es keinen Zugriff auf den inneren Zustand einer Funktion gibt. Die einzigen Zugriffe sind der Aufruf mit der Übergabe der notwendigen Parameter und der Zugriff auf den Rückgabewert.


Beispiel

Im Raumplaner-Projekt gibt es eine gut verständliche Begründung für die Kapselung, beispielsweise des Attributes self.__x zur Speicherung der x-Position.

Da man über die PyShell in wxPython auf die laufende Anwendung zugreifen kann, lässt sich auf das Attribut für die x-Position ohne die beiden vorangestellten Unterstreichungsstriche schreibend zugreifen. Setzt man diesen Wert neu, ändert sich jedoch nicht die Darstellung in der Zeichenfläche, da diese über die Änderung nicht informiert wird. Das System ist dadurch in einen inkonsistenten Zustand gegangen.

Daher wird in der Klasse Moebel eine verändernde Methode self.BewegeHorizontal(weite) angeboten, die einen konsistenten Zustand sicherstellt.

    def BewegeHorizontal(self, weite):
        """Veraendernde Methode fuer die x-Position"""
        self.Verberge()
        self.__x += weite
        self.Zeige()

<== Zur Übersicht der Begriffe ==>

© Claus Albowski