Datenkapselung

In ein Python Programm können wir Zugang zum Methoden und variablen limitieren. Damit verhindern wir das Data zufällig verändert.

Privaten Methoden

Wir machen einer Klasse mit zwei Methoden: drive() und updateSoftware(). Als wir einem Objekt machen von der Klasse car, ruft der die privaten Methoden __updateSoftware() an.

Wir können diesen Methoden nicht direkt beim Objekt anrufen, nur in der Klasse.

#!/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()  not accesible from object.

Der privaten Methoden __updateSoftware() kann nur in die Klasse angerufen werden, niemals außer der Klasse.

Privaten Variablen

Variablen können private sein. Einen privaten variablen kann nur in die Klasse mit einer Methode verändern

Objekten können wichtige Datei behalten und wir möchten nicht das die Daten ohne Klasse Methoden verändern wird.

Zum Beispiel:

#!/usr/bin/env python
 
class Car:
 
    __maxspeed = 0
    __name = ""
 
    def __init__(self):
        self.__maxspeed = 200
        self.__name = "Supercar"
 
    def drive(self):
        print 'driving. maxspeed ' + str(self.__maxspeed)
 
redcar = Car()
redcar.drive()
redcar.__maxspeed = 10  # will not change variable because its private
redcar.drive()

Wenn Sie die wert einen privaten variablen anderen willst, benutzt Sie ein setter Methoden. Ein setter Methode verändert die wert einer privaten variablen.

#!/usr/bin/env python
 
class Car:
 
    __maxspeed = 0
    __name = ""
 
    def __init__(self):
        self.__maxspeed = 200
        self.__name = "Supercar"
 
    def drive(self):
        print 'driving. maxspeed ' + str(self.__maxspeed)
 
    def setMaxSpeed(self,speed):
        self.__maxspeed = speed
 
redcar = Car()
redcar.drive()
redcar.setMaxSpeed(320)
redcar.drive()

Datenkapselung in Python

In Python gibt es:

  • Privaten Variablen
  • Privaten Methoden
  • Public Variablen
  • Public Methoden

In anderen Programmiersprachen gibt es auch protected Methoden, aber im Python nicht.

Schreibe einen Kommentar