I objektorienteret programmering ( OOP) sprog som Python, er klasser og objekter en integreret del af , hvordan data er repræsenteret . Et af de grundlæggende principper i OOP er dataintegritet og datasikkerhed. Dette er meget vigtigt for et sprog som Python , der eksisterer i et stort udvalg af software til og fra internettet. En måde at vedligeholde data integritet kontrollere, hvordan objekt data interagerer med brugerne. Den " ejendomsret ( )" funktionen i Python gør netop det. Klasser og objekter i Python
Fordi Python er et objektorienteret sprog, kan Python programmører oprette særlige former for datatyper ved at skabe "klasser ". Klasser er tegninger , der definerer det indre struktur og adfærd af et objekt . Efter at skrive en klasse , kan en programmør " instantiere " ( eller oprette en instans af ) et objekt. Følgende eksempel viser en grundlæggende klasse og en instantiering af et objekt af klassen
>>> klasse Basic: . //Klasse navn
. . . def __ init__ (selv-) : //initialisering funktion kaldet implicit , når objektet er instantieret
. . . self.x = 4 //lokal data medlem
. . . def skriv (): //medlem metode
. . . print "Hello "
>>> f = Basic ( ) //f udgør nu et " Basic " objekt
beskyttelse af data
Ethvert objekt oprettet fra "Basis "-klassen vil indeholde et dataelement "x ", der vil indeholde heltal 4. . En programmør arbejder med en Basic objekt kan få adgang til data i x med " . " operatør , som i dette eksempel : Hej
>>> FX
4 fotos
Dog kan brugeren ændre denne værdi til enhver tid , ligesom med alle andre variabel . Det er måske ikke være ønskeligt i alle tilfælde en klasse kan indeholde vigtige data, som brugerne ikke skulle ændre sig . I dette tilfælde er data medlemmer i Python navngivningen sætte to understregningstegn før medlemmet navn for at forhindre en bruger i at ændre det : Hej
>>> klasse Basic : Hej < p > . . . def __ init__ (selv-)
. . . self.__x = 4 //private data medlem
Getters og Settere
Denne skjulested af data fra adgangen er undertiden beskrevet som " indkapsling ". Data skjult brugeradgang kan kræve lejlighedsvis manipulation, som i tilfælde, hvor en bruger kan ændre klassen oplysninger, men kun inden for visse parametre. I dette tilfælde omfatter programmøren " getters " og " settere ", som returnerer værdien og indstil værdien hhv . Getters blot returnere en værdi og settere ændre værdien samtidig bevare dataenes integritet. Følgende eksempel viser stikprøve hente og sætte funktioner i et Python -klasse : Hej
>>> klasse Basic : Hej
. . . def __ init__ ( KFK) : Hej
. . . self.__x = 4 fotos
. . . def getX (selv-) : Hej
. . . tilbage self.__x
. . . def setX (selv , newx ) : Hej
. . . hvis newx > = 0 : Hej
. . . selv . __x = newx
"ejendom ()" Method
Nogle brugere mener, at det besværligt for brugerne at have adgang til " f.getx () "-metoden for hver eksempelvis data er påkrævet. Den " f.x " syntaks er typisk mere bekvemt. Den " property" metoden gør netop dette : det gør det muligt for programmøren at definere hente og sætte metoder ( sammen med andre) og binde dem til simpel syntaks . Tager Basic klassen som et eksempel , vil "ejendom " metoden forenkle brugernes adgang til Grunddata : Hej
. . . def getx (selv-) : Hej
. . . tilbage self.__x
. . . def setx (selv , newx ) : Hej
. . . hvis newx > = 0 : Hej
. . . self.__x = newx
. . . ejendomsret ( får , setx ) //nu brugerne kan få den __ x værdi med fx , og sæt det med FX = i