Funzione Python Proprietà

February 17

In Object Oriented Programming Languages ​​(OOP) come Python, classi e oggetti sono parte integrante di come i dati sono rappresentati. Uno dei principi fondamentali della programmazione orientata agli oggetti è l'integrità dei dati e la sicurezza dei dati. Questo è molto importante per un linguaggio come Python che esiste in una grande varietà di software e fuori dal Web. Un modo per mantenere l'integrità dei dati sta controllando la quantità di dati oggetto interagisce con gli utenti. L ' "() in" funzione in Python fa proprio questo.

Classi e Oggetti in Python

Perché Python è un linguaggio orientato agli oggetti, i programmatori Python possono creare tipi speciali di tipi di dati attraverso la creazione di "classi". Le classi sono modelli che definiscono la struttura interna e il comportamento di un oggetto. Dopo aver scritto una classe, un programmatore può "istanziare" (o creare un'istanza di) un oggetto. Il seguente esempio mostra una classe di base e un'istanza di un oggetto della classe.

Classe di base: // nome della classe

. . DEF init (self): // funzione chiamata implicitamente inizializzazione quando l'oggetto viene creata un'istanza

. . . self.x = 4 // membro di dati locali

. . write DEF (): il metodo membro //

. . . print "Ciao"

f = Basic () // f ora rappresenta un oggetto "di base"

Protezione dei dati

Ogni oggetto creato dalla classe "base" conterrà un dato "x" che conterrà il numero intero 4. Un programmatore che lavora con un oggetto di base in grado di accedere ai dati in x con il "." operatore, come in questo esempio:

fx

4

Tuttavia, l'utente può modificare questo valore in qualsiasi momento, proprio come con qualsiasi altra variabile. Questo potrebbe non essere desiderabile in tutti i casi; una classe potrebbe contenere dati importanti che gli utenti non dovrebbero cambiare. In questo caso, i membri di dati in Python hanno una convenzione di denominazione di mettere due caratteri di sottolineatura prima il nome del membro al fine di evitare che un utente di cambiare esso:

Classe di base:

. . . def init (auto)

. . . self .__ x = 4 // membro dati privato

Getter e setter

Questo mascheramento dei dati da accessi è talvolta descritto come "incapsulamento". I dati nascosti da l'accesso degli utenti, che potrebbero richiedere la manipolazione occasionali, come nei casi in cui un utente può modificare le informazioni di classe, ma solo entro certi parametri. In questo caso, il programmatore comprende "getter" e "setter", che restituiscono il valore e impostare il valore, rispettivamente. Getters semplicemente restituiscono un valore e setter cambiare il valore, pur mantenendo l'integrità dei dati. L'esempio seguente mostra campione ottenere e impostare le funzioni in una classe Python:

Classe di base:

. . . def init (SEF):

. . . self .__ x = 4

. . . def GetX (auto):

. . . auto tornare .__ x

. . . def setX (auto, newx):

. . . se newx> = 0:

. . . se stesso. __x = newx

La "proprietà ()" Metodo

Alcuni utenti considerano ingombrante per gli utenti di avere per accedere al "f.getx ()" metodo per ogni istanza è richiesta i dati. La sintassi "fx" è in genere più conveniente. Il metodo "proprietà" fa proprio questo: permette al programmatore di definire il metodi get e set (insieme ad altri) e li legano alla sintassi semplice. Prendendo la classe di base come esempio, il metodo di "proprietà" semplificherà l'accesso degli utenti ai dati di base:

. . . def coordinatax (auto):

. . . auto tornare .__ x

. . . def SETX (auto, newx):

. . . se newx> = 0:

. . . self .__ x = newx

. . . Proprietà (ottiene, setx) // ora gli utenti possono ottenere il valore __x con fx, e impostarlo con fx = i