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.
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.
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.
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'