Python OOPs:Klasse, Objekt, Vererbung und Konstruktor mit Beispiel
OOPs in Python
OOPs in Python ist ein Programmieransatz, der sich darauf konzentriert, Objekte und Klassen genauso zu verwenden wie andere allgemeine Programmiersprachen. Die Objekte können beliebige Entitäten der realen Welt sein. Python ermöglicht es Entwicklern, Anwendungen mit dem OOPs-Ansatz zu entwickeln, wobei der Schwerpunkt auf der Wiederverwendbarkeit von Code liegt. Es ist sehr einfach, Klassen und Objekte in Python zu erstellen.
Was ist eine Klasse?
Eine Klasse in Python ist eine logische Gruppierung von Daten und Funktionen. Es gibt die Freiheit, Datenstrukturen zu erstellen, die beliebigen Inhalt enthalten und daher leicht zugänglich sind.
Zum Beispiel würde jeder Bankangestellte, der die Kundendaten online abrufen möchte, zur Kundenklasse gehen , wo alle Attribute wie Transaktionsdetails, Abhebungs- und Einzahlungsdetails, ausstehende Schulden usw. aufgelistet würden.
In diesem Tutorial lernen wir,
- Wie man Python-Klassen definiert
- Funktionsweise der Vererbung
- Python-Konstruktoren
Wie man Python-Klassen definiert
Um eine Klasse zu definieren, müssen Sie die folgenden Punkte berücksichtigen
Schritt 1) In Python werden Klassen durch die „Klasse“ definiert Schlüsselwort
class myClass():
Schritt 2) Innerhalb von Klassen können Sie Funktionen oder Methoden definieren, die Teil dieser Klasse sind
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- Hier haben wir Methode1 definiert, die „Guru99.“ ausgibt.
- Eine weitere Methode, die wir definiert haben, ist Methode2, die „Software Testing“+ SomeString ausgibt. SomeString ist die Variable, die von der aufrufenden Methode geliefert wird
Schritt 3) Alles in einer Klasse ist eingerückt, genau wie der Code in der Funktion, Schleife, if-Anweisung usw. Alles, was nicht eingerückt ist, ist nicht in der Klasse
HINWEIS :Über die Verwendung von „self“ in Python
- Das Selbstargument bezieht sich auf das Objekt selbst. Daher die Verwendung des Wortes selbst. Innerhalb dieser Methode bezieht sich also self auf die spezifische Instanz dieses Objekts, an dem gearbeitet wird.
- Self ist der Name, der per Konvention von Pythons bevorzugt wird, um den ersten Parameter von Instanzmethoden in Python anzugeben. Es ist Teil der Python-Syntax, um auf Mitglieder von Objekten zuzugreifen
Schritt 4) Um ein Objekt der Klasse zu machen
c = myClass()
Schritt 5) So rufen Sie eine Methode in einer Klasse auf
c.method1() c.method2(" Testing is fun")
- Beachten Sie, dass wir beim Aufrufen von Methode1 oder Methode2 das Schlüsselwort self nicht angeben müssen. Das wird automatisch von der Python-Laufzeit für uns erledigt.
- Die Python-Laufzeitumgebung übergibt den „self“-Wert, wenn Sie eine Instanzmethode in instance aufrufen, unabhängig davon, ob Sie ihn absichtlich angeben oder nicht
- Sie müssen sich nur um die Nicht-Selbst-Argumente kümmern
Schritt 6) Hier ist der vollständige Code
# Example file for working with classes class myClass(): def method1(self): print("Guru99") def method2(self,someString): print("Software Testing:" + someString) def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main()
Funktionsweise der Vererbung
Vererbung ist eine Funktion, die in der objektorientierten Programmierung verwendet wird; es bezieht sich auf das Definieren einer neuen Klasse mit weniger oder keiner Änderung an einer bestehenden Klasse. Die neue Klasse heißt abgeleitete Klasse und von einer, die es erbt, wird die Basis genannt . Python unterstützt Vererbung; es unterstützt auch mehrere Vererbungen . Eine Klasse kann Attribute und Verhaltensmethoden von einer anderen Klasse namens Unterklasse oder Erbklasse erben.
Python-Vererbungssyntax
class DerivedClass(BaseClass): body_of_derived_class
Schritt 1) Führen Sie den folgenden Code aus
# Example file for working with classes class myClass(): def method1(self): print("Guru99") class childClass(myClass): #def method1(self): #myClass.method1(self); #print ("childClass Method1") def method2(self): print("childClass method2") def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
Beachten Sie, dass method1 in childClass nicht definiert ist, aber von der übergeordneten myClass abgeleitet wird. Die Ausgabe ist „Guru99.“
Schritt 2) Entkommentieren Sie Zeile 8 &10. Führen Sie den Code aus
Jetzt ist die Methode 1 in der childClass definiert und die Ausgabe „childClass Method1“ wird korrekt angezeigt.
Schritt 3) Kommentieren Sie Zeile #9 aus. Führen Sie den Code aus
Sie können eine Methode der übergeordneten Klasse mit der Syntax
aufrufenParentClassName.MethodName(self)
In unserem Fall rufen wir myClass.method1(self) auf und Guru99 wird wie erwartet ausgegeben
Schritt 4 ) Kommentieren Sie Zeile 19 aus. Führen Sie den Code aus.
Methode 2 der untergeordneten Klasse wird aufgerufen und „childClass method2“ wird wie erwartet ausgegeben.
Python-Konstruktoren
Ein Konstruktor ist eine Klassenfunktion, die ein Objekt mit vordefinierten Werten instanziiert.
Es beginnt mit einem doppelten Unterstrich (_). Es __init__() Methode
Im folgenden Beispiel nehmen wir den Namen des Benutzers mit dem Konstruktor.
class User: name = "" def __init__(self, name): self.name = name def sayHello(self): print("Welcome to Guru99, " + self.name) User1 = User("Alex") User1.sayHello()
Ausgabe wird sein:
Willkommen bei Guru99, Alex
Python 2-Beispiel
Die obigen Codes sind Beispiele für Python 3. Wenn Sie Python 2 ausführen möchten, ziehen Sie bitte den folgenden Code in Betracht.
# How to define Python classes # Example file for working with classes class myClass(): def method1(self): print "Guru99" def method2(self,someString): print "Software Testing:" + someString def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main() #How Inheritance works # Example file for working with classes class myClass(): def method1(self): print "Guru99" class childClass(myClass): #def method1(self): #myClass.method1(self); #print "childClass Method1" def method2(self): print "childClass method2" def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
Zusammenfassung:
„Klasse“ ist eine logische Gruppierung von Funktionen und Daten. Die Python-Klasse bietet alle Standardfunktionen der objektorientierten Programmierung.
- Klassenvererbungsmechanismus
- Eine abgeleitete Klasse, die alle Methoden ihrer Basisklasse überschreibt
- Eine Methode kann die Methode einer Basisklasse mit demselben Namen aufrufen
- Python-Klassen werden durch das Schlüsselwort „class“ definiert selbst
- Innerhalb von Klassen können Sie Funktionen oder Methoden definieren, die Teil der Klasse sind
- Alles in einer Klasse ist eingerückt, genau wie der Code in der Funktion, Schleife, if-Anweisung usw.
- Das self-Argument in Python bezieht sich auf das Objekt selbst. Self ist der von Pythons bevorzugte Name, um den ersten Parameter von Instanzmethoden in Python anzugeben
- Die Python-Laufzeitumgebung übergibt automatisch den Wert „self“, wenn Sie eine Instanzmethode in instance aufrufen, unabhängig davon, ob Sie ihn absichtlich angeben oder nicht
- In Python kann eine Klasse Attribute und Verhaltensmethoden von einer anderen Klasse namens Unterklasse oder Erbklasse erben.
Python
- C#-Klasse und -Objekt
- Python objektorientierte Programmierung
- Python-Vererbung
- Roboter bauen mit Raspberry Pi und Python
- Unterschied zwischen Struktur und Klasse:Erklärt mit C++-Beispiel
- Python String strip() Funktion mit BEISPIEL
- Python-Zähler in Sammlungen mit Beispiel
- type() und isinstance() in Python mit Beispielen
- Python List index() mit Beispiel
- Java - Objekt und Klassen