Vererbung in Python | Python-Vererbung [mit Beispiel]

Veröffentlicht: 2020-12-14

Python ist eine der beliebtesten Programmiersprachen. Trotz eines Übergangs voller Höhen und Tiefen von der Python 2-Version zu Python 3 hat die objektorientierte Programmiersprache einen massiven Popularitätssprung erfahren.

Wenn Sie eine Karriere als Python-Entwickler planen, erhalten Sie mit Sicherheit eine höhere Auszahlung. Da das durchschnittliche Gehalt für einen Python-Entwickler bei etwa 119.082 $ pro Jahr liegt. Aber bevor Sie mit dem Python-Lernprogramm fortfahren, sollten Sie zuerst Folgendes wissen: Vererbung in Python. Sehen Sie sich unsere Data-Science-Zertifizierungen an, wenn Sie sich Fachwissen in Python und anderen Tools aneignen möchten.

Beginnen wir zunächst damit, was genau Vererbung in Python ist?

Inhaltsverzeichnis

Was ist eine Vererbung in Python?

Genau wie bei einer Eltern-Kind-Beziehung funktioniert die Vererbung bei abgeleiteten Klassen relativ zur Basisklasse. Jede „abgeleitete“ Klasse erbt von einer „Basis“-Klasse. Die Vererbung wird in UML oder Unified Modeling Language dargestellt. Es ist eine Standard-Modellierungssprache, die einen integrierten Satz von Diagrammen enthält, um Entwicklern zu helfen, Softwaresystemelemente zu spezifizieren, zu strukturieren und zu dokumentieren.

Die Vererbungsbeziehung definiert die Klassen, die von anderen Klassen als abgeleitete Klassen, Unterklassen oder Untertypklassen erben. Die Basisklasse bleibt die Quelle, von der eine Unterklasse erbt. Beispielsweise haben Sie eine Basisklasse „Tier“ und „Löwe“ ist eine abgeleitete Klasse. Das Erbe lautet Lion is an Animal.

Die Frage ist also, was erbt die Klasse „Löwe“ von „Tier“?

Eine „Lion“-Klasse erbt

  • Schnittstelle
  • Ausführung

Hinweis: Sie können die Objekte der abgeleiteten Klasse durch Objekte der Basisklasse in einer Anwendung ersetzen, die als Liskov-Substitutionsprinzip bekannt ist . Es zeigt an, dass, wenn ein Computerprogramm Objekt P als Untertyp von Q hat, Sie P leicht durch Q ersetzen können, ohne die Eigenschaften zu ändern.

Auch Checkout: Python-Entwicklergehalt in Indien

Vorteile der Vererbung in Python

  • Die Vererbung in Python hilft Entwicklern, die Objekte wiederzuverwenden.
  • Jedes Mal, wenn eine Klasse die Basisklasse erbt, erhält sie Zugriff auf die Funktionalität des übergeordneten Objekts.
  • Auch die Wiederverwendbarkeit durch Vererbung ist zuverlässig, da die Basisklasse bereits getestet ist.
  • Niedrige Entwicklungszeit und -kosten
  • Die klassenübergreifende Standardisierung der Schnittstelle wird einfach.
  • Reduziert die Redundanz des Codes und trägt zur Verbesserung der Erweiterbarkeit bei
  • Die Erstellung von Klassenbibliotheken wird einfach.

Vererbungsarten in Python

Einfache Vererbung

Wir haben bereits gesehen, was Einfachvererbung ist – die Vererbung der Klasse „Derived“ von der Klasse „Base“. Lassen Sie es uns anhand eines Beispiels verstehen,

Klasse Land:

def ShowCountry(self):

print("Das ist Spanien");

Klasse Staat (Land):

def ShowState(selbst):

print("Das ist der Staat");

st =Zustand();

st.ShowCountry();

st.ShowState();

Vererbung auf mehreren Ebenen

Python besteht aus mehreren Objekten, und mit der mehrstufigen Vererbung gibt es unendlich viele Möglichkeiten, die Klassenfunktionalitäten wiederzuverwenden. Die Vererbung auf mehreren Ebenen wird jedes Mal dokumentiert, wenn eine abgeleitete Klasse eine andere abgeleitete Klasse erbt. Die Anzahl der abgeleiteten Klassen, die die Funktionalitäten erben können, ist unbegrenzt, und deshalb hilft die Vererbung auf mehreren Ebenen, die Wiederverwendbarkeit in Python zu verbessern.

Hier ist ein Beispiel für mehrstufige Vererbung

Klasse Tier:

def sprechen (selbst):

print("Tier spricht")

#Die Kindklasse Hund erbt die Basisklasse Tier

Klasse Hund(Tier):

def Rinde(selbst):

print("Hund bellt")

#Die untergeordnete Klasse Dogchild erbt eine andere untergeordnete Klasse Dog

Klasse HundKind(Hund):

def essen (selbst):

print("Brot essen...")

d = HundKind()

d. Rinde ()

d.sprechen()

d.essen()

Mehrfachvererbung

Python ermöglicht es Entwicklern, mehrere Funktionalitäten und Eigenschaften von verschiedenen Basisklassen in eine einzige abgeleitete Klasse zu erben. Es ist vor allem eine großartige Funktion, da Sie damit mehrere Abhängigkeiten ohne umfangreiche Tools oder Codierung erben können.

Schauen wir uns ein Beispiel für Mehrfachvererbung an.

Klasse Berechnung1:

def Summation(selbst,a,b):

gib a+b zurück;

Klasse Berechnung2:

def Multiplikation(self,a,b):

gib a*b zurück;

Klasse Abgeleitet (Berechnung1, Berechnung2):

def Dividiere(selbst,a,b):

gib a/b zurück;

d = Abgeleitet()

print(d.Summation(10,20))

print(d.Multiplikation(10,20))

print(d.Dividieren(10,20))

Schauen Sie sich an: So konvertieren Sie Sprache mit Python in Text

Wie identifiziere ich eine abgeleitete Klasse?

Python verfügt über eine integrierte issubclass()-Funktion, mit der Entwickler prüfen können, ob es sich bei einer Klasse um eine abgeleitete Klasse oder eine Basisklasse handelt. Sobald Sie diese Funktion ausführen, gibt sie das Ergebnis „True“ für die Unterklasse oder eine abgeleitete Klasse zurück, während „False“ für die Basisklasse.

Ein Entwickler kann die Klasse anhand dieses Beispiels überprüfen.

Klasse mein Alter:

Alter = 36

Klasse meinObj(meinAlter):

name = „Johannes“

Alter = mein Alter

x = issubclass(myObj, myAge)

Wie erstelle ich eine Klassenhierarchie in Python?

Die Vererbung in Python hilft beim Erstellen von Klassenhierarchien. Alle relativen Klassen teilen sich eine gemeinsame Schnittstelle, um miteinander zu kommunizieren. Eine Basisklasse definiert die Schnittstelle. Abgeleitete Klassen können eine spezifische Spezialisierung der Schnittstelle bereitstellen. Hier untersuchen wir ein HR-Modell, um die Klassenhierarchie zu demonstrieren.

Das HR-System verarbeitet die Gehaltsabrechnung für verschiedene Mitarbeiter des Unternehmens; Jeder Arbeiter wird durch eine ID identifiziert und hat unterschiedliche Gehaltspositionen, die berechnet werden müssen.

Lassen Sie uns zunächst eine Gehaltsklasse als „Basis“-Objekt erstellen.

# In hr.py

Klasse PayrollSystem:

def compute_payroll(selbst, Arbeiter):

print('Lohnabrechnung berechnen')

print('===================')

für Arbeiter in Arbeitern:

print(f'Lohnabrechnung für: {worker.id} – {worker.name}')

print(f'- Scheckbetrag: {worker.calculate_payroll()}')

drucken(")

Das PayrollSystem führt eine .calculate_payroll()- Methode aus, die die Informationen des Arbeiters sammelt, seine ID und seinen Namen druckt und den Gehaltsbetrag prüft . Jetzt führen Sie einen Basisklassen- Worker aus , der die Standardschnittstelle für jeden Worker-Typ angeht:

# In hr.py

Klasse Arbeiter:

def __init__(selbst, id, name):

self.id = id

self.name = name

Das Erstellen einer Worker-Basisklasse für alle Worker-Typen im Unternehmen vereinfacht die Hierarchie für das HR-System. Jedem Arbeiter wird ein Name und eine ID zugewiesen. Das HR-System fordert den Arbeitnehmer auf, Daten zu seinem Wochengehalt über die Schnittstelle .calculate_payroll() bereitzustellen. Die Ausführung dieser Schnittstelle kann je nach Worker-Typ unterschiedlich sein.

Muss gelesen werden: Python-Interviewfragen

Fazit

Hier haben wir gelernt, verschiedene Python-Klassen zu erstellen, Beziehungen zwischen ihnen herzustellen und sogar Klassenhierarchien festzulegen. Die Vererbung in Python ist jedoch nicht auf die hier erwähnten Funktionalitäten beschränkt.

Vorabzertifizierung für maschinelles Lernen und KI : IIT Madras, eine der besten Bildungseinrichtungen Indiens, hat sich mit upGrad zusammengetan, um einen fortgeschrittenen Kurs über maschinelles Lernen zu erstellen, damit Einzelpersonen mit diesem Kurs vollständige Kenntnisse über maschinelles Lernen erwerben können.

Wenn Sie neugierig sind, etwas über Data Science zu lernen, schauen Sie sich das Executive PG Program in Data Science von IIIT-B & upGrad an, das für Berufstätige entwickelt wurde und mehr als 10 Fallstudien und Projekte, praktische Workshops, Mentoring mit Branchenexperten, 1 -on-1 mit Branchenmentoren, mehr als 400 Stunden Lern- und Jobunterstützung bei Top-Unternehmen.

Warum ist die Vererbung in Python von Bedeutung?

Vererbung bezieht sich auf den Prozess der Weitergabe der Eigenschaften einer übergeordneten Klasse an eine untergeordnete Klasse. Es ist ein Konzept der objektorientierten Programmierung (OOP) und ist in Python von Bedeutung. Dies liegt daran, dass die Vererbung die Wiederverwendbarkeit von Code bietet, was bedeutet, dass wir, anstatt denselben Code immer wieder zu schreiben, die Attribute erben können, die wir in einer untergeordneten Klasse benötigen. Es ist auch leicht zu verstehen und zu implementieren, da es eine reale Beziehung zwischen den Eltern- und Kindklassen darstellt. Es hat einen transitiven Charakter. Da alle untergeordneten Klassen Eigenschaften von ihren übergeordneten Klassen erben, verwenden alle untergeordneten Klassen ebenfalls die Funktionalitäten der übergeordneten Klasse.

Ist Vererbung beim Lernen von Python notwendig?

Ja, beim Erlernen von Python ist das Erlernen der Vererbung erforderlich. Umfangreiche Python-Anwendungen erfordern einen Anstieg der Anzahl von Python-Programmierern auf dem aktuellen Markt. Dieser Anstieg hat zu einer Zunahme der Zahl der Menschen geführt, die Python lernen. Die Programmiersprache Python ist reich an Begriffen wie Vererbung. Eines der wesentlichen Konzepte dieser objektorientierten Programmiersprache ist die Vererbung. Da die Vererbung die Wiederverwendbarkeit, Lesbarkeit und den Übergang von Eigenschaften des Codes ermöglicht, ist es zwingend erforderlich, ihn beim Erlernen von Python zu lernen. Vererbung hilft bei der Erstellung von genauem und effizientem Code.

Welche Vererbungsarten werden in Python nicht unterstützt?

Python erlaubt im Gegensatz zu anderen objektorientierten Programmiersprachen alle Formen der Vererbung, einschließlich Mehrfachvererbung. Es ist möglich, neue Klassen aus bereits existierenden zu konstruieren, indem das Vererbungskonzept verwendet wird. Dies erleichtert die Wiederverwendung von Code. Die in der Elternklasse angegebenen Methoden werden auch in der Kindklasse verwendet. Obwohl C++ diese Art der Vererbung ebenfalls ermöglicht, fehlt ihm die fortschrittliche und gut durchdachte Methodik von Python. Python bietet sogar Hybrid-Vererbung, die es uns ermöglicht, viele Arten der Vererbung in einem einzigen Codestück zu implementieren. Da die Wiederverwendbarkeit von Code eine Stärke der Vererbung ist, ist sie bei einer Vielzahl von Anwendungen hilfreich, wenn Sie mit Python arbeiten.