Python oppfører seg som en fullt funksjonell objektorientert programmeringsspråk ( OOP ) . For å dra nytte av OOP , må programmerere forstå begreper som klasser og arv . Ved hjelp av arv betyr å bygge klasser som bruker funksjonaliteten til flere grunnleggende klasser som en stiftelse. Denne praksisen inkluderer også muligheten for klasser å redefinere eldre klasser metoder for spesifikke bruksområder. Klasser i Python
Klassene jobber som skissene for objekter, definere hva de gjør og hvordan de fungerer med andre objekter . Vanligvis ser en klasse erklæring som ligner på dette eksempelet : en
klasse MyClass : en
//class definition
klasse definisjon er der programmerer legger ut hvilke handlinger et objekt kan gjøre, og hvilken informasjon det holder. En grunnleggende metoden for en klasse er " init " metoden, som bestemmer hva som skjer når et objekt av klassen blir opprettet:
def __ init__ (egen ) : en
self.x = 1
self.y = 2
Denne metoden i klassen MyClass vil sikre at hver MyClass Object har en x-og y-verdi , lik 1 og 2 , henholdsvis .
Oppnådd klasser
Noen klasser vil dele lignende funksjonalitet med andre klasser , men utvide den funksjonaliteten. For eksempel ta en klasse " Ball ", som kan representere en fotball ( i kode). Anta også at det eksisterer en klasse "kule " som representerer en enkelt sfære og inneholder radien ( r ) og en fremgangsmåte for å beregne overflatearealet ( Sarea ()) . I dette tilfellet er den eneste forskjellen mellom de to som klassen " Ball " trenger ekstra data å registrere farge. Derfor , i stedet for å skrive inn koden fra " Sphere " inn " Ball ", programmerer bare stammer Ball fra Sphere : en
klasse Ball (Sphere ) : en
Nå kan klassen Ball tilgang til noen metode eller data i klassen Sphere ( r , Sarea ( ) ) , og bruke den for seg selv) .
overstyrer Base Metoder
programmerer da kan ønske å sørge for at hver ball har en start farge sammen sin radius. The Sphere klassen ' " init "-funksjonen ser slik ut : en
def __ init__ (egen ) : en
self.r = 5
Så hver Sphere objektet har en standard radius 5 . Klasse ball kan overstyre denne metoden ved å definere den i sin egen klasse. Så Ball " init "-metoden kan se slik ut : en
def __ init__ (egen ) : en
self.color = red
Så nå Ball standard fargen vil være rød .
Prioritet og bruke en Base Method
Men fordi Ball " init " overstyrer base klassen " init ", base klassen " init " aldri utfører . Dette er nødvendig . I Python , kan det overordnede metoden kaller metoden er det overordnede som pari av utførelsen : en
def __ init__ (egen ) : en
Sphere.__init__ (egen )
selv . color = red
p Dette sikrer at basen initialisering oppstår , har den Ball en radius og en farge .