inom objektorienterad programmering ( OOP ) språk såsom Python , klasser och objekt är en integrerad del av hur data representeras . En av de grundläggande principerna i OOP är dataintegritet och datasäkerhet . Detta är mycket viktigt för ett språk som Python som finns i ett stort utbud av program på och utanför webben . Ett sätt att upprätthålla dataintegritet styr hur objektdata interagerar med användare . Den " property ( ) " -funktion i Python gör just det . Klasser och objekt i Python
Eftersom Python är ett objektorienterat språk , kan Python programmerare skapa speciella sorters datatyper genom att skapa " klasser . " Klasserna är ritningar som definierar den inre strukturen och beteendet hos ett objekt . Efter att ha skrivit en klass , kan en programmerare " initiera " ( eller skapa en instans av ) ett objekt . Följande exempel visar en grundläggande klass och en exemplifiering av ett objekt av klassen
>>> klass Basic : . //Klassnamn
. . . def __ init__ (egen ) : //initiering funktion som kallas implicit när objekt instansieras
. . . self.x = 4 //lokala uppgifter medlem
. . . def write ( ) : //medlem
metod
. . . skriva " Hej "
>>> f = Basic ( ) //f utgör nu en " Basic " objektet
Skydda data
Alla objekt skapas från " Basic " klass kommer att innehålla en datapost " x " som ska innehålla heltal 4 . En programmerare som arbetar med en grundläggande syfte kan komma åt data i x med " . " Operatören , som i detta exempel :
>>> fx
4
Däremot kan användaren ändra detta värde när som helst , precis som med alla andra variabel. Detta kan inte vara önskvärt i alla fall , en klass kan innehålla viktiga uppgifter som användarna inte bör ändra . I detta fall , uppgifter medlemmar i Python har en namnkonvention att sätta två understreck innan medlem namn för att förhindra en användare från att ändra det :
>>> klass Basic :
< p> . . . def __ init__ (egen ) katalog
. . . self.__x = 4 //privata data medlemmens
get-och set
gömmer av data från Access beskrivs ibland som " inkapsling . " Data gömda från användare tillgång kan kräva tillfällig manipulation , som i de fall där en användare kan byta klass informationen , men bara inom vissa parametrar . I detta fall innefattar programmeraren " getters " och " setters ", som returnera värdet och ställ in värdet , respektive. Getter returnera helt enkelt ett värde och normgivare ändra värdet samtidigt som uppgifternas integritet . Följande exempel visar prov get och set funktioner i en Python klass :
>>> klass Basic :
. . . def __ init__ ( SEF ) :
. . . self.__x = 4
. . . def getX (egen ) :
. . . återvända self.__x
. . . def sattX ( jaget , newx ) :
. . . Om newx > = 0 :
. . . själv . __x = newx
"egendom ( ) " Method
Vissa användare anser att det är tungrott för användare att få tillgång till " f.getx ( ) " metoden för varje exempelvis uppgifterna är nödvändig . Den " f.x " syntax är oftast mer praktiskt . Den " property " metoden gör just detta : det tillåter programmeraren att definiera get-och set -metoder ( tillsammans med andra) , och binda dem till enkla syntax . Med den grundläggande klassen som ett exempel , kommer den " egendom " metoden förenkla användarnas tillgång till grundläggande uppgifter :
. . . def getx (egen ) :
. . . återvända self.__x
. . . def sattX ( jaget , newx ) :
. . . Om newx > = 0 :
. . . self.__x = newx
. . . egendom ( får , sattX ) //Nu kan användarna få värdet __ x med fx , och ställ in den med fx = i