Python opfører sig som en fuldt funktionel objektorienteret programmeringssprog ( OOP) . For at udnytte styrken af OOP skal programmører forstå begreber som klasser og arv . Brug arv betyder opbygning klasser , der bruger funktionaliteten af mere grundlæggende klasser som et fundament. Denne praksis omfatter også muligheden for klasserne til at omdefinere ældre klasser metoder til specifikke anvendelser . Klasser i Python
Klasser arbejde som planerne for objekter , som definerer , hvad de gør, og hvordan de arbejder med andre objekter. Typisk en klasse erklæring ligner dette eksempel : Hej
class MinKlasse : Hej
//klasse definition
klassen definition er , hvor programmøren udstikker hvilke handlinger et objekt kan gøre, og hvilke oplysninger det holder. En grundlæggende fremgangsmåde til en klasse er " init "-metoden , som dikterer, hvad der sker, når et objekt af klassen er oprettet :
def __ init__ ( selv-) :
self.x = 1 < br >
self.y = 2
Denne metode i klassen MinKlasse vil sikre, at alle MinKlasse Object har en x-og y-værdi , svarende til 1. og 2. hhv .
< br > afledte klasser
Nogle klasser vil dele lignende funktionalitet med andre klasser, men udvide denne funktionalitet . For eksempel tage en klasse " Ball ", som kan repræsentere en fodbold ( i koden ) . Antag endvidere, at der findes en klasse " Sphere " , der repræsenterer en enkelt kugle og indeholder radius ( r) og en metode til beregning af overfladeareal ( Sarea ( ) ) . I dette tilfælde er den eneste forskel mellem de to, class " Ball " bør ekstra data til at optage farve . Derfor, i stedet for at omskrive koden fra " Sphere " til " Ball ", programmøren blot stammer Ball fra Sphere : Hej
class Ball ( Sphere ) : Hej
Nu kan class Ball adgang enhver metode eller data i klasse Sphere ( r, Sarea () ) , og bruge det til sig selv) .
Overstyring Base Metoder
programmør derefter kan ønske at sørg for, at hver bold har en begyndende farve siden dens radius . Sphere class ' " init "-funktionen ser sådan ud:
def __ init__ (selv-) : Hej
self.r = 5
Så hver Sphere objekt har en default radius 5. . Class bold kan tilsidesætte denne metode ved at definere den i sin egen klasse. Så Balls " init " metode kunne se sådan ud : Hej
def __ init__ (selv-) : Hej
self.color = rød
Så nu Balls standard farve vil være rød .
Overstyring og hjælp af en Base Method
Men fordi Balls " init " tilsidesætter base class " init " base class " init " aldrig udfører . Dette er nødvendigt . I Python kan den altoverskyggende metode kalder metoden er det tvingende som par for dens udførelse : Hej
def __ init__ (selv-) : Hej
Sphere.__init__ (selv-)
self . color = red
Dette sikrer , at basen initialiseringen sker, at Ball har en radius og en farve.