Python verhält sich wie eine voll funktionsfähige objektorientierte Programmiersprache (OOP) . Um die Macht der OOP nutzen , müssen Programmierer verstehen Konzepte wie Klassen und Vererbung. Mit Vererbung bedeutet Aufbau Klassen, die die Funktionalität von mehr grundlegenden Klassen als Grundlage verwenden . Diese Praxis gehört auch die Möglichkeit für Klassen zu älteren Klassen Methoden für spezielle Anwendungen neu zu definieren. Klassen in Python
Klassen arbeiten, wie die Baupläne für Objekte , zu definieren, was sie tun und wie sie arbeiten mit anderen Objekten . Typischerweise sieht ein Klassendeklaration ähnlich diesem Beispiel :
class MyClass :
//Klassendefinition
Die Klassendefinition ist, wo der Programmierer legt , welche Aktionen ein Objekt tun , und welche Informationen sie hält. Eine grundlegende Methode für eine Klasse ist die "init " -Methode, die das, was passiert, wenn ein Objekt der Klasse erstellt wird diktiert :
def __ init__ ( self):
self.x = 1
self.y = 2
Diese Methode in der Klasse MyClass wird sichergestellt, dass jedes Objekt eine MyClass x -und y- Wert gleich 1 bzw. 2 hat .
Abgeleitete Klassen
Einige Klassen werden ähnliche Funktionalität mit anderen Klassen zu teilen, aber diese Funktionalität erweitern . Nehmen wir zum Beispiel eine Klasse "Ball ", die einen Fußball ( im Code ) darstellen kann . Es sei auch angenommen , dass es eine Klasse "Sphere" , die eine einfache Kugel repräsentieren als der Radius ( r ) und ein Verfahren , um die Oberfläche zu berechnen ( SAREA ()). In diesem Fall besteht der einzige Unterschied zwischen den beiden die Klasse " Ball" benötigt zusätzliche Daten zu Farbaufzeichnung . Statt also Umschreiben Sie den Code aus "Sphere" in "Ball ", der Programmierer nur leitet Kugel von Sphere:
Klasse Ball ( Kugel ):
Jetzt können Klasse Kugel Zugang zu den Verfahren oder Daten der Klasse Sphere (r, Sarea ()) , und verwenden Sie es für sich selbst ) .
Überschreiben Basis Methoden
der Programmierer kann dann möchten stellen Sie sicher, dass jede Kugel einen Ausgangspunkt Farbe neben seinen Radius hat . Die Sphere -Klasse ' "init "-Funktion sieht wie folgt aus :
def __ init__ ( self):
self.r = 5
Also jedes Sphere Objekt verfügt über eine Standard- Radius von 5 . Klasse Ball kann diese Methode durch die Definition in einer eigenen Klasse zu überschreiben.
Def __ init__ (Selbst-) : So ist der Ball "init "-Methode wie folgt aussehen könnte
self.color = red
So, jetzt ist der Ball Standardfarbe ist rot .
Überschreiben und mit einer Base Methode
Aber weil Balls "init " überschreibt die Basisklasse "init ", die Basisklasse "init " nie ausgeführt . Dies ist notwendig . In Python kann die übergeordnete Methode rufen Sie die Methode als par seiner Ausführung überschreiben wird :
def __ init__ ( self):
Sphere.__init__ (Selbst-)
selbst . color = red
Dadurch wird sichergestellt, dass die Basis -Initialisierung auftritt, hat die Kugel einen Radius und eine Farbe .