python oops concepts python classes
OOPs-Konzepte in Python: Python-Klassen und -Objekte, Vererbung, Überladen, Überschreiben und Ausblenden von Daten
Im vorherigen Tutorial haben wir einige der Eingabe- / Ausgabeoperationen dass Python bietet.
Wir haben gelernt, wie man diese Funktionen verwendet, um die Daten vom Benutzer oder von externen Quellen zu lesen und wie man diese Daten in externe Quellen schreibt. Außerdem haben wir gelernt, wie man einen großen Code mithilfe von Funktionen in kleinere Methoden aufteilt und wie man sie aufruft oder darauf zugreift.
Weiterführende Literatur => Explizite Auswahl an kostenlosen Python-Schulungs-Tutorials
In diesem Tutorial werden wir das Advanced Python-Konzept namens OOPs und verschiedene Arten von Oops-Konzepten diskutieren, die in Python verfügbar sind, und wie und wo sie verwendet werden.
Was du lernen wirst:
- Sehen Sie sich die VIDEO-Tutorials an
- Klassen und Objekte
- Konstruktor in Python
- Erbe
- Methodenüberladung in Python
- Überschreiben von Methoden in Python
- Ausblenden von Daten in Python
- Fazit
- Literatur-Empfehlungen
Sehen Sie sich die VIDEO-Tutorials an
Video Nr. 1: Klasse, Objekte und Konstruktor in Python
Video 2: Konzept der Vererbung in Python
Video 3: Überladen, Überschreiben und Verstecken von Daten in Python
VPN in China nutzen
Klassen und Objekte
- Python ist eine objektorientierte Programmiersprache, bei der die Programmierung mehr auf Objekte legt.
- Fast alles in Python sind Objekte.
Klassen
Klasse in Python ist eine Sammlung von Objekten. Wir können uns eine Klasse als Blaupause, Skizze oder Prototyp vorstellen. Es enthält alle Details eines Objekts.
Im Beispiel der realen Welt ist Tier eine Klasse, weil wir verschiedene Arten von Tieren auf der Welt haben und alle diese zu einer Klasse namens Tier gehören.
Eine Klasse definieren
In Python sollten wir eine Klasse mit dem Schlüsselwort 'class' definieren.
Syntax:
class classname: #Collection of statements or functions or classes
Beispiel:
class MyClass: a = 10 b = 20 def add(): sum = a+b print(sum)
Im obigen Beispiel haben wir die Klasse 'Myclass' deklariert und einige Variablen bzw. Funktionen deklariert und definiert.
Um auf die in der Klasse vorhandenen Funktionen oder Variablen zuzugreifen, können Sie den Klassennamen verwenden, indem Sie ein Objekt daraus erstellen.
Lassen Sie uns zunächst sehen, wie Sie mit dem Klassennamen auf diese zugreifen.
Beispiel:
class MyClass: a = 10 b = 20 #Accessing variable present inside MyClass print(MyClass.a)
Ausgabe
10
Ausgabe:
Objekte
Ein Objekt ist normalerweise eine Instanz einer Klasse. Es wird verwendet, um auf alles zuzugreifen, was in der Klasse vorhanden ist.
Ein Objekt erstellen
Syntax:
variablename = classname
Beispiel:
ob = MyClass()
Dadurch wird ein neues Instanzobjekt mit dem Namen 'ob' erstellt. Mit diesem Objektnamen können wir auf alle Attribute zugreifen, die in der Klasse MyClass vorhanden sind.
Beispiel:
class MyClass: a = 10 b = 20 def add(self): sum = self.a + self.b print(sum) #Creating an object of class MyClass ob = MyClass() #Accessing function and variables present inside MyClass using the object print(ob.a) print(ob.b) ob.add()
Ausgabe:
10
zwanzig
30
Ausgabe:
Konstruktor in Python
Der Konstruktor in Python ist eine spezielle Methode, mit der die Mitglieder einer Klasse zur Laufzeit beim Erstellen eines Objekts initialisiert werden.
In Python gibt es einige spezielle integrierte Klassenmethoden, die mit einem doppelten Unterstrich (__) beginnen und in Python eine besondere Bedeutung haben.
Der Name des Konstruktors lautet immer __init __ ().
Jede Klasse muss über einen Konstruktor verfügen. Auch wenn Sie keinen Konstruktor explizit erstellen, wird ein Standardkonstruktor für sich erstellt.
Beispiel:
class MyClass: sum = 0 def __init__ (self, a, b): self.sum = a+b def printSum(self): print(“Sum of a and b is: ”, self.sum) #Creating an object of class MyClass ob = MyClass(12, 15) ob.printSum()
Ausgabe:
Die Summe von a und b ist: 27
Ausgabe:
Wenn wir im obigen Beispiel beobachten, rufen wir die Methode __init __ () nicht auf, da sie automatisch aufgerufen wird, wenn wir ein Objekt für diese Klasse erstellen und die Datenelemente gegebenenfalls initialisieren.
Denken Sie immer daran, dass ein Konstruktor niemals Werte zurückgibt und daher keine return-Anweisungen enthält.
Erbe
Vererbung ist eines der mächtigsten Konzepte von OOPs.
Eine Klasse, die die Eigenschaften einer anderen Klasse erbt, heißt Vererbung.
Die Klasse, die die Eigenschaften erbt, heißt untergeordnete Klasse / Unterklasse, und die Klasse, von der Eigenschaften geerbt werden, heißt übergeordnete Klasse / Basisklasse.
Python bietet drei Arten der Vererbung:
- Einzelvererbung
- Mehrstufige Vererbung
- Mehrfachvererbung
Empfohlene Lektüre = >> Vererbung in Java
# 1) Einzelvererbung
Bei der Einzelvererbung erbt eine Klasse nur die Eigenschaften einer Klasse.
Beispiel:
class Operations: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: “, sum) class MyClass(Operations): c = 50 d = 10 def sub(self): sub = self.c – self.d print(“Subtraction of c and d is: ”, sub) ob = MyClass() ob.add() ob.sub()
Ausgabe:
Die Summe von a und b ist: 30
Die Subtraktion von c und d ist: 40
Ausgabe:
Im obigen Beispiel erben wir die Eigenschaften der Klasse 'Operations' in die Klasse 'MyClass'.
Daher können wir mithilfe der MyClass-Objekte auf alle in der Klasse 'Operations' vorhandenen Methoden oder Anweisungen zugreifen.
# 2) Mehrstufige Vererbung
Bei der mehrstufigen Vererbung fungieren eine oder mehrere Klassen als Basisklasse.
Dies bedeutet, dass die zweite Klasse die Eigenschaften der ersten Klasse und die dritte Klasse die Eigenschaften der zweiten Klasse erbt. Die zweite Klasse fungiert also sowohl als Elternklasse als auch als Kinderklasse.
Beispiel:
class Addition: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: ”, sum) class Subtraction(Addition): def sub(self): sub = self.b-self.a print(“Subtraction of a and b is: ”, sub) class Multiplication(Subtraction): def mul(self): multi = self.a * self.b print(“Multiplication of a and b is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Ausgabe:
Die Summe von a und b ist: 30
Die Subtraktion von a und b ist: 10
Die Multiplikation von a und b ist: 200
Ausgabe:
Im obigen Beispiel erbt die Klasse 'Subtraktion' die Eigenschaften der Klasse 'Addition' und die Klasse 'Multiplikation' die Eigenschaften der Klasse 'Subtraktion'. Die Klasse 'Subtraktion' fungiert also sowohl als Basisklasse als auch als abgeleitete Klasse.
# 3) Mehrfachvererbung
Die Klasse, die die Eigenschaften mehrerer Klassen erbt, wird als Mehrfachvererbung bezeichnet.
Weiterführende Literatur = >> Unterstützt Java Multiple Inheritance?
Beispiel:
class Addition: a = 10 b = 20 def add(self): sum = self. a+ self.b print(“Sum of a and b is: “, sum) class Subtraction(): c = 50 d = 10 def sub(self): sub = self.c-self.d print(“Subtraction of c and d is: ”, sub) class Multiplication(Addition,Subtraction): def mul(self): multi = self.a * self.c print(“Multiplication of a and c is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Ausgabe:
Die Summe von a und b ist: 30
Die Subtraktion von c und d ist: 10
Die Multiplikation von a und c ist: 500
Ausgabe:
Methodenüberladung in Python
Mehrere Methoden mit demselben Namen, aber einem anderen Parametertyp oder einer anderen Anzahl von Parametern werden als Methodenüberladung bezeichnet
Beispiel:
def product(a, b): p = a*b print(p) def product(a, b, c): p = a*b*c print(p) #Gives you an error saying one more argument is missing as it updated to the second function #product(2, 3) product(2, 3, 5)
Ausgabe:
30
Ausgabe:
Ausgabe:
Das Überladen von Methoden wird in Python nicht unterstützt, da wir im obigen Beispiel zwei Funktionen mit demselben Namen 'Produkt', aber einer unterschiedlichen Anzahl von Parametern definiert haben.
In Python wird jedoch die zuletzt definierte Version aktualisiert, sodass das Funktionsprodukt (a, b) unbrauchbar wird.
Überschreiben von Methoden in Python
Wenn eine Unterklassenmethode denselben Namen hat, der in der Oberklassenmethode deklariert ist, wird sie als Methodenüberschreibung bezeichnet
Um ein Überschreiben der Methode zu erreichen, müssen wir die Vererbung verwenden.
Beispiel:
class A: def sayHi(): print(“I am in A”) class B(A): def sayHi(): print(“I am in B”) ob = B() ob.sayHi()
Ausgabe:
Ich bin in B.
Ausgabe:
Ausblenden von Daten in Python
Das Ausblenden von Daten bedeutet, die Daten privat zu machen, damit sie für die anderen Klassenmitglieder nicht zugänglich sind. Es kann nur in der Klasse zugegriffen werden, in der es deklariert ist.
Wenn wir in Python die Variable ausblenden möchten, müssen wir vor dem Variablennamen einen doppelten Unterstrich (__) schreiben.
Beispiel:
Class MyClass: __num = 10 def add(self, a): sum = self.__num + a print(sum) ob = MyClass() ob.add(20) print(ob.__num) #The above statement gives an error because we are trying to access private variable outside the class
Ausgabe:
30
Traceback (letzter Anruf zuletzt):
Datei 'DataHiding.py', Zeile 10, in
drucken (ob fällig .__)
AttributeError: MyClass-Instanz hat
kein Attribut ‘__num
Ausgabe:
Fazit
Die Klasse ist eine Blaupause oder Vorlage, die alle Details eines Objekts enthält, wobei das Objekt eine Instanz einer Klasse ist.
- Wenn wir die Eigenschaften einer anderen Klasse in eine Klasse umwandeln möchten, kann dies durch Vererbung erreicht werden.
- Es gibt drei Arten der Vererbung: Einzelvererbung, mehrstufige Vererbung und Mehrfachvererbung.
- Das Überladen von Methoden wird in Python nicht unterstützt.
- Das Überschreiben von Methoden wird verwendet, um die Implementierung derselben Funktion zu überschreiben, die in einer anderen Klasse definiert ist.
- Wir können die Datenattribute als privat festlegen oder ausblenden, damit außerhalb der Klasse, in der sie definiert sind, nicht darauf zugegriffen werden kann.
In unserem nächsten Tutorial erfahren Sie mehr über zusätzliche Python-Konzepte!
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Python-Variablen
- Python DateTime Tutorial mit Beispielen
- Python-String-Funktionen
- Python-Tutorial für Anfänger (KOSTENLOSES Python-Training zum Anfassen)
- Python-Steueranweisungen (Python Continue, Break and Pass)
- Python-Operatoren
- Python-Funktionen
- Python-Einführungs- und Installationsprozess