Python Eiendom Funksjon

I objektorientert programmering (OOP) språk som Python, klasser og objekter er en integrert del av hvordan dataene er representert. En av de grunnleggende prinsippene for OOP er data integritet og datasikkerhet. Dette er svært viktig for et språk som Python som finnes i et stort utvalg av programvare og på nettet. En måte å opprettholde dataintegriteten er å kontrollere hvordan objektdata samhandler med brukerne. Den "eiendom ()" -funksjonen i Python gjør nettopp det.

Klasser og objekter i Python

Fordi Python er et objektorientert språk, kan Python programmerere lage spesielle typer datatyper ved å opprette "klasser". Klassene er skissene som definerer den indre strukturen og oppførselen til et objekt. Etter å ha skrevet en klasse, kan en programmerer "instantiate" (eller opprette en forekomst av) et objekt. Følgende eksempel viser en grunnleggende klasse og en oppretting av et objekt av klassen.

klasse Basic: // klassenavn

. . def init (egen-): // initialisering funksjon kalt implisitt når objektet er instansiert

. . . self.x = 4 // lokale data medlem

. . def write (): // medlem metode

. . . print "Hello"

f = Basic () // f representerer nå en "Basic" objekt

beskytte data

Enhver gjenstand laget fra "Basic" klassen vil inneholde et dataelement "x" som skal inneholde heltall 4. En programmerer arbeider med en grunnleggende objekt får tilgang til dataene i x med "." Operatøren, som i dette eksempelet:

fx

4

Imidlertid kan brukeren endre denne verdien når som helst, akkurat som med alle andre variable. Dette kan ikke være ønskelig i alle tilfeller; en klasse kan inneholde viktige data som brukerne ikke skal endres. I dette tilfellet, data medlemmer i Python har en navnekonvensjon for å sette to understrekingstegn før medlemmet navn for å forhindre en bruker fra å endre det:

klasse Basic:

. . . def init (egen-)

. . . selv .__ x = 4 // private data medlem

Getters og Setters

Dette skjuling av data fra innsyn er ofte beskrevet som "innkapsling". Data skjult brukertilgang kan kreve annen manipulasjon, som i tilfeller der en bruker kan endre klasse informasjon, men bare innenfor visse rammer. I dette tilfellet omfatter programmerer "getter" og "settere", som returnerer verdien og sette verdien, henholdsvis. Getters bare returnere en verdi og settere endre verdien og samtidig opprettholde dataenes integritet. Eksempelet nedenfor viser eksempel få og sette funksjoner i et Python-klasse:

klasse Basic:

. . . def init (SEF):

. . . selv .__ x = 4

. . . def getX (egen-):

. . . tilbake selv .__ x

. . . def setX (selv, newx):

. . . hvis newx> = 0:

. . . selv. __x = newx

Den "eiendom ()" Metode

Noen brukere anser det uhåndterlig for brukerne å ha tilgang til "f.getx ()" metoden for hver forekomst av data er nødvendig. Den "fx" syntaks er vanligvis mer praktisk. Den "eiendom" metoden gjør nettopp dette: det tillater programmereren å definere komme og sette metoder (sammen med andre) og binde dem til enkel syntaks. Tar Basic klassen som et eksempel, vil "eiendom" metoden forenkle brukertilgang til Grunnleggende data:

. . . def getx (egen-):

. . . tilbake selv .__ x

. . . def setx (selv, newx):

. . . hvis newx> = 0:

. . . selv .__ x = newx

. . . eiendom (blir, setx) // nå kan brukerne få __x verdi med fx, og sett den med fx = i