In Objektorientierte Programmierung (OOP) Sprachen wie Python, sind Klassen und Objekte ein integraler Bestandteil davon, wie Daten dargestellt . Eine der grundlegenden Lehren der OOP ist die Integrität der Daten und zur Datensicherheit. Dies ist sehr wichtig für eine Sprache wie Python , die in einer Vielzahl von Software auf und neben dem Web vorhanden ist. Ein Weg, um Datenintegrität zu gewährleisten ist die Steuerung wie Objektdaten mit Benutzern interagiert . Die " property () "-Funktion in Python genau das tut. Klassen und Objekte in Python
Weil Python ist eine objektorientierte Sprache , können Python-Programmierer spezielle Arten von Datentypen durch die Schaffung erstellen " -Klassen. " Klassen sind Baupläne , die die interne Struktur und das Verhalten eines Objekts zu definieren. Nach dem Schreiben einer Klasse kann ein Programmierer " instanziieren " (oder eine Instanz ) eines Objekts. Das folgende Beispiel zeigt eine grundlegende Klasse und eine Instanziierung eines Objekts der Klasse
>>> class Basic: . //Class name
. . . def __ init__ ( self): //Initialisierung Funktion implizit aufgerufen , wenn das Objekt
instanziiert wird . . . self.x = 4 //lokale Daten Mitglied
. . . def write () : //Mitglied Verfahren
. . . print " Hallo "
>>> f = Standard () //f stellt nun ein "Basic" Objekt
Schützen von Daten
Jedes Objekt aus der "Basic" -Klasse erstellt wird enthält ein Datenelement "x " , das die ganze Zahl 4 enthalten wird. Ein Programmierer arbeitet mit einem Basic-Objekt kann auf die Daten in x mit dem " . " Betreiber , wie in diesem Beispiel :
>>> fx
4
Allerdings kann der Benutzer diesen Wert jederzeit ändern , genau wie bei jedem anderen Variable. Dies ist möglicherweise nicht in allen Fällen erwünscht , eine Klasse , könnten wichtige Daten, die Benutzer nicht ändern sollte . In diesem Fall müssen Daten Mitglieder in Python eine Namenskonvention der Inbetriebnahme zwei Unterstriche vor dem Mitgliedsnamen um einen Benutzer ändern es zu verhindern :
>>> class Basic:
< p> . . . def __ init__ (Selbst-)
. . . self.__x = 4 //private Daten Mitglied
Getter und Setter
Dieses Verstecken von Daten vor dem Zugriff wird manchmal als " Verkapselung ". Daten aus Benutzer Zugriff verborgen erfordern möglicherweise gelegentlichen Manipulation , als in Fällen, in denen ein Benutzer der Klasse Informationen ändern können , aber nur innerhalb bestimmter Parameter . In diesem Fall weist der Programmierer " Getter " und " Setter ", die den Wert zurück und setzen Sie den Wert auf. Getter einfach einen Wert zurückgeben und Setter ändern Sie den Wert , während die Integrität der Daten . Das folgende Beispiel zeigt Probe get-und set -Funktionen in einem Python-Klasse :
>>> class Basic:
. . . def __ init__ (SEF ):
. . . self.__x = 4
. . . def getX ( self):
. . . zurück self.__x
. . . def setX (self, NEWX ):
. . . wenn NEWX > = 0:
. . . Selbst. __x = NEWX
Die " property () " Methode
Einige Nutzer halten es unhandlich für die Nutzer zu haben , um die " f.getx ()" zugreifen Methode für jede beispielsweise werden die Daten erforderlich . Die " f.x " Syntax ist in der Regel bequemer. Das "Eigentum" Methode macht genau dies : Es ermöglicht dem Programmierer, die get-und set -Methoden ( zusammen mit anderen ) zu definieren und zu binden , um einfache Syntax . Unter der Basic-Klasse als Beispiel , wird das "Eigentum" Verfahren vereinfachen Benutzer Zugriff auf Basisdaten:
. . . def holex ( self):
. . . zurück self.__x
. . . def setx (self, NEWX ):
. . . wenn NEWX > = 0:
. . . self.__x = NEWX
. . . Eigenschaft ( bekommt , setx ) //Jetzt können Benutzer erhalten die __ x Wert mit fx, und setzen Sie ihn mit fx = i