Python uppför sig som en fullt fungerande objektorienterat programmeringsspråk ( OOP ) . För att utnyttja kraften i OOP , måste programmerare förstå begrepp såsom klasser och arv . Använda arv innebär att bygga klasser som använder funktionaliteten av mer grundläggande klasser som en stiftelse . Denna praxis innefattar även möjligheten för klasser att omdefiniera äldre klasser metoder för särskilda användningsområden . Klasser i Python
Klasser arbeta som ritningarna till objekt , att definiera vad de gör och hur de arbetar med andra objekt . Vanligtvis ser klassdeklarationen liknar detta exempel :
klass MyClass :
//class definition
Klassdefinitionen är där programmeraren lägger ut vilka åtgärder ett objekt kan göra , och vilken information som det innehar . En grundläggande metod för en klass är " init "-metoden , som dikterar vad som händer när ett objekt av klassen skapas :
def __ init__ (egen ) :
self.x = 1
self.y = 2 Review
Denna metod i klassen MyClass kommer att säkerställa att varje MyClass Object har en x -och y-värde , som är lika med 1 respektive 2 .
härledda klasser
Vissa klasser kommer att dela liknande funktionalitet med andra klasser , men förlänga denna funktionalitet . Till exempel , ta en klass " boll " som kan representera en fotboll ( i koden ) . Antag också att det finns en klass " Sphere " som representerar en enkel sfär och innehåller radien ( r ) och en metod för att beräkna ytan ( Sarea ( ) ) . I detta fall är den enda skillnaden mellan de två som klassen "klumpa ihop " needs extra data för att spela in färg. I stället för att skriva in koden från " Sphere " i " Ball , " programmeraren bara härleder Ball från Sphere :
klassen Ball ( Sphere ) :
Nu kan klassen Ball komma någon metod eller uppgifter om klass Sphere (R , Sarea ( ) ) , och använder den för sig själv ) .
Åsidosätta Base Metoder
programmeraren sedan kanske vill se till att varje boll har en start färg vid sidan av dess radie . The Sphere klassen ' " init " -funktionen ser ut så här :
def __ init__ ( egen) :
self.r = 5
Så varje Sphere objekt har en standard radie fem . Klass bollen kan åsidosätta den här metoden genom att definiera det i sin egen klass . Så bollens " init "-metoden kan se ut så här :
def __ init__ ( egen) :
self.color = röd
Så nu bollens förvalda färgen blir röd . Addera åsidosätta och användning av en bas Metod
Men eftersom Ball " init " åsidosätter basklass " init " basklass " init " aldrig körs . Detta är nödvändigt . I Python , kan den övergripande metoden anropa metoden är det allt överskuggande som par av dess utförande :
def __ init__ ( egen) :
Sphere.__init__ (egen ) katalog
själv . color = red
Detta säkerställer att basen initiering sker , har den bollen en radie och en färg .