python logo

Datenkapselung

Python hosting: Host, run, and code Python in the cloud!

In ein Python Programm können wir Zugang zum Methoden und variablen limitieren. Damit verhindern wir das Data zufällig verändert. Wir können das nur beim methoden machen (klassen), nicht funktionen.

Related Course:
Python Programming Bootcamp: Go from zero to hero

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.

BackNext





Leave a Reply: