Nwlapcug.com


Funzione di proprietà Python

In linguaggi Object Oriented Programming (OOP) come Python, classi e oggetti sono parte integrante della modalità di rappresentazione dei dati. Uno dei principi fondamentali della OOP è l'integrità dei dati e sicurezza dei dati. Questo è molto importante per un linguaggio ad esempio Python che esiste in una grande varietà di software su e fuori dal Web. Un modo per mantenere l'integrità dei dati è il controllo come dati oggetto interagisce con gli utenti. La funzione di "Property ()" in Python fa proprio questo.

Classi e oggetti in Python

Perché Python è un linguaggio object-oriented, Python i programmatori possono creare speciali tipi di tipi di dati mediante la creazione di "classi". Le classi sono le cianografie che definiscono la struttura interna e il comportamento di un oggetto. Dopo aver scritto una classe, un programmatore può "creare un'istanza" (o creare un'istanza di) un oggetto. L'esempio seguente mostra una classe base e creazione di un'istanza di un oggetto della classe.

Classe Basic: / / nome della classe

... def init(self): //initializing funzione chiamato in modo implicito quando viene creata un'istanza di oggetto

... self = 4 membro di dati //local

... def Write (): metodo di //member

... print "Ciao"

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

Protezione dei dati

Qualsiasi oggetto creato dalla classe "Base" conterrà un elemento di dati "x" che conterrà il valore integer 4. Un programmatore che lavora con un oggetto di base può accedere ai dati di x con il "." operatore, come nel seguente esempio:

f. x

4

Tuttavia, l'utente può modificare questo valore in qualsiasi momento, proprio come con qualsiasi altra variabile. Questo potrebbe non essere auspicabile 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 del nome del membro al fine di impedire all'utente di cambiarla:

Classe Basic:

... def init(self)

... self.__x = 4 membro di dati //private

Getter e setter

Questo nascondiglio di dati da access è talvolta descritto come "incapsulamento". Dati nascosti dall'accesso utente potrebbero richiedere manipolazione occasionale, come nei casi in cui un utente può modificare le informazioni di classe, ma solo entro determinati parametri. In questo caso, il programmatore include "getter" e "setter", che restituiscono il valore e impostare il valore, rispettivamente. Getters semplicemente restituire un valore e setter cambiamento il valore pur mantenendo l'integrità dei dati. Nell'esempio seguente viene illustrato il campione e le funzioni definite in una classe di Python:

Classe Basic:

... def init(sef):

... self.__x = 4

... def getX(self):

... tornare self.__x

... def setX (self, newx):

... se newx > = 0:

... self. __x = newx

Il "Property"metodo)

Alcuni utenti considerano poco maneggevole per gli utenti di dover accedere al metodo "f.getx()" per ogni istanza dei dati è obbligatorio. La sintassi "f. x" è in genere più conveniente. Il metodo di "proprietà" non è solo questo: permette al programmatore di definire il get e impostare metodi (insieme ad altri) e associarle a una sintassi semplice. La classe di base ad esempio il metodo di "proprietà" semplificherà l'accesso utente ai dati di base:

... def getx(self):

... tornare self.__x

... def setx (self, newx):

... se newx > = 0:

... self.__x = newx

... proprietà (ottiene, setx) //now gli utenti possono ottenere il __x valore con Fabris e impostarlo con f. x = io