logo

Python-Vererbung

Vererbung ist ein wichtiger Aspekt des objektorientierten Paradigmas. Durch Vererbung wird Code für das Programm wiederverwendbar, da wir eine vorhandene Klasse verwenden können, um eine neue Klasse zu erstellen, anstatt sie von Grund auf neu zu erstellen.

Bei der Vererbung erwirbt die untergeordnete Klasse die Eigenschaften und kann auf alle in der übergeordneten Klasse definierten Datenelemente und Funktionen zugreifen. Eine untergeordnete Klasse kann auch ihre spezifische Implementierung für die Funktionen der übergeordneten Klasse bereitstellen. In diesem Abschnitt des Tutorials werden wir die Vererbung im Detail besprechen.

Name der Make-up-Produkte

In Python kann eine abgeleitete Klasse die Basisklasse erben, indem sie einfach die Basis in der Klammer nach dem Namen der abgeleiteten Klasse erwähnt. Betrachten Sie die folgende Syntax, um eine Basisklasse in die abgeleitete Klasse zu erben.

Python-Vererbung

Syntax

 class derived-class(base class): 

Eine Klasse kann mehrere Klassen erben, indem sie alle in der Klammer erwähnt werden. Betrachten Sie die folgende Syntax.

Syntax

 class derive-class(, , ..... ): 

Beispiel 1

 class Animal: def speak(self): print('Animal Speaking') #child class Dog inherits the base class Animal class Dog(Animal): def bark(self): print('dog barking') d = Dog() d.bark() d.speak() 

Ausgabe:

 dog barking Animal Speaking 

Python-Mehrebenenvererbung

Eine mehrstufige Vererbung ist in Python wie in anderen objektorientierten Sprachen möglich. Die mehrstufige Vererbung wird archiviert, wenn eine abgeleitete Klasse eine andere abgeleitete Klasse erbt. Es gibt keine Begrenzung für die Anzahl der Ebenen, bis zu denen die mehrstufige Vererbung in Python archiviert wird.

Python-Vererbung

Die Syntax der mehrstufigen Vererbung ist unten angegeben.

Syntax

 class class1: class class2(class1): class class3(class2): . . 

Beispiel

 class Animal: def speak(self): print('Animal Speaking') #The child class Dog inherits the base class Animal class Dog(Animal): def bark(self): print('dog barking') #The child class Dogchild inherits another child class Dog class DogChild(Dog): def eat(self): print('Eating bread...') d = DogChild() d.bark() d.speak() d.eat() 

Ausgabe:

 dog barking Animal Speaking Eating bread... 

Python-Mehrfachvererbung

Python bietet uns die Flexibilität, mehrere Basisklassen in der untergeordneten Klasse zu erben.

Python-Vererbung

Die Syntax zur Durchführung der Mehrfachvererbung ist unten angegeben.

Syntax

 class Base1: class Base2: . . . class BaseN: class Derived(Base1, Base2, ...... BaseN): 

Beispiel

 class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(d.Summation(10,20)) print(d.Multiplication(10,20)) print(d.Divide(10,20)) 

Ausgabe:

 30 200 0.5 

Die Methode issubclass(sub,sup).

Mit der Methode issubclass(sub, sup) werden die Beziehungen zwischen den angegebenen Klassen überprüft. Es gibt true zurück, wenn die erste Klasse die Unterklasse der zweiten Klasse ist, andernfalls false.

Betrachten Sie das folgende Beispiel.

Beispiel

 class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(issubclass(Derived,Calculation2)) print(issubclass(Calculation1,Calculation2)) 

Ausgabe:

 True False 

Die isinstance-Methode (obj, class).

Mit der Methode isinstance() wird die Beziehung zwischen den Objekten und Klassen überprüft. Es gibt true zurück, wenn der erste Parameter, d. h. obj, die Instanz des zweiten Parameters, d. h. class, ist.

Betrachten Sie das folgende Beispiel.

Beispiel

 class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(isinstance(d,Derived)) 

Ausgabe:

 True 

Methodenüberschreibung

Wir können eine spezifische Implementierung der übergeordneten Klassenmethode in unserer untergeordneten Klasse bereitstellen. Wenn die Methode der übergeordneten Klasse in der untergeordneten Klasse mit einer bestimmten Implementierung definiert ist, wird das Konzept als Methodenüberschreibung bezeichnet. In dem Szenario, in dem eine andere Definition einer übergeordneten Klassenmethode in der untergeordneten Klasse erforderlich ist, müssen wir möglicherweise eine Methodenüberschreibung durchführen.

Betrachten Sie das folgende Beispiel, um das Überschreiben von Methoden in Python durchzuführen.

Beispiel

 class Animal: def speak(self): print('speaking') class Dog(Animal): def speak(self): print('Barking') d = Dog() d.speak() 

Ausgabe:

 Barking 

Beispiel aus dem wirklichen Leben für das Überschreiben einer Methode

 class Bank: def getroi(self): return 10; class SBI(Bank): def getroi(self): return 7; class ICICI(Bank): def getroi(self): return 8; b1 = Bank() b2 = SBI() b3 = ICICI() print('Bank Rate of interest:',b1.getroi()); print('SBI Rate of interest:',b2.getroi()); print('ICICI Rate of interest:',b3.getroi()); 

Ausgabe:

 Bank Rate of interest: 10 SBI Rate of interest: 7 ICICI Rate of interest: 8 

Datenabstraktion in Python

Abstraktion ist ein wichtiger Aspekt der objektorientierten Programmierung. In Python können wir Daten auch ausblenden, indem wir dem auszublendenden Attribut den doppelten Unterstrich (___) als Präfix hinzufügen. Danach ist das Attribut außerhalb der Klasse durch das Objekt nicht mehr sichtbar.

Betrachten Sie das folgende Beispiel.

schönstes Lächeln

Beispiel

 class Employee: __count = 0; def __init__(self): Employee.__count = Employee.__count+1 def display(self): print('The number of employees',Employee.__count) emp = Employee() emp2 = Employee() try: print(emp.__count) finally: emp.display() 

Ausgabe:

 The number of employees 2 AttributeError: 'Employee' object has no attribute '__count'