python logo

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python

class Car:

def __init__(self):
self.__updateSoftware()

def drive(self):
print('driving')

def __updateSoftware(self):
print('updating software')

redcar = Car()
redcar.drive()
# redcar.__updateSoftware() is not accessible from the object.

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env python

class Car:

__maxspeed = 0
__name = ""

def __init__(self):
self.__maxspeed = 200
self.__name = "Supercar"

def drive(self):
print('driving. max speed is ' + str(self.__maxspeed))

redcar = Car()
redcar.drive()
redcar.__maxspeed = 10 # will not change the variable because it's private
redcar.drive()

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python

class Car:

__maxspeed = 0
__name = ""

def __init__(self):
self.__maxspeed = 200
self.__name = "Supercar"

def drive(self):
print('driving. max speed is ' + str(self.__maxspeed))

def setMaxSpeed(self, speed):
self.__maxspeed = speed

redcar = Car()
redcar.drive()
redcar.setMaxSpeed(320)
redcar.drive()

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.

Zurück | Weiter





Leave a Reply: