Python Super -Funktion

Python Super -Funktion
Ein Python-Skript kann sowohl strukturierte Programmier- als auch objektorientierte Programmierungen (OOP) ausführen. Super () ist eine eingebaute Python-Funktion von OOP. Das Grundwissen von OOP wird bevorzugt, den Zweck und die Verwendung des super() Methode. Eines der wichtigsten Merkmale von OOP ist die Vererbung. Eine neue Klasse kann erstellt werden, indem die Funktionen einer anderen Klasse erbt werden und die Erbschaft bezeichnet wird. Hier heißt die neue Klasse Unterklasse oder Kinderklasse und eine andere Klasse wird als Superklasse oder Elternklasse bezeichnet. Der Super () Die Funktion wird in der untergeordneten Klasse verwendet, um auf die übergeordnete Klasse zu verweisen und auf alle übergeordneten Klassenvariablen und -Methoden zuzugreifen. Diese Funktion macht das Vererbung überschaubarer. Wie diese Funktion in Python verwendet werden kann, hat in diesem Tutorial gezeigt.

Beispiel-1: Verwendung der Super () -Funktion im einzelnen Vererbung

Wenn eine untergeordnete Klasse durch Erben einer übergeordneten Klasse erstellt wird, wird sie als Einzelvererbung bezeichnet. Die Verwendung der Verwendung der super() Die Funktion im einzelnen Vererbung hat im folgenden Skript gezeigt. Buch ist die übergeordnete Klasse hier, die eine Konstruktormethode enthält, um die Daten zu initialisieren, bookType () Methode, um den Typ des Buches zu drucken, und Rabatt() Die Methode zum Anzeigen des Rabattangebots ist verfügbar oder nicht. ENG_BOOK ist die untergeordnete Klasse hier, die eine Konstruktormethode enthält, wobei die super() Funktion wird verwendet, um den Konstruktor der übergeordneten Klasse aufzurufen. Die Kinderklasse hat eine andere Methode namens namens display_details () Um die detaillierten Informationen des Buches zu drucken. Die Objekte sowohl der Eltern- als auch der Kinderklassen wurden später erstellt, um die verschiedenen Methoden der Klassen aufzurufen.

# Definieren Sie die übergeordnete Klasse
Klassenbuch:
# Konstruktor definieren
Def __init __ (Selbst, Titel, Autor, Typ, Angebot):
selbst.Titel = Titel
selbst.Autor = Autor
selbst.Typ = Typ
selbst.Angebot = Angebot
# Definieren Sie die Funktion zum Anzeigen des Buchentyps
Def BookType (Selbst):
Wenn Selbst.Typ == 1:
Print (" %S ist ein %s Buch." %(Selbst.Titel, 'Engineering'))
Wenn Selbst.Typ == 2:
Print (" %S ist ein %s Buch." %(Selbst.Titel, 'medizinisch'))
Wenn Selbst.Typ == 3:
Print (" %S ist ein %s Buch." %(Selbst.Titel, 'Finanzen'))
# Definieren Sie die Funktion, um das Rabattangebot anzuzeigen
Def Rabatt (Selbst):
Wenn Selbst.Angebot == True:
Print ("Das Buch hat ein Rabattangebot."))
anders:
Print ("Das Buch hat kein Rabattangebot."))
# Definieren Sie die Kinderklasse
Klasse ENG_BOOK (Buch):
# Konstruktor definieren
Def __init __ (Selbst, Titel, Autor, Typ, Angebot, Preis):
super().__init __ (Titel, Autor, Typ, Angebot)
selbst.Preis = Preis
# Definieren Sie die Funktion, um die Buchdetails anzuzeigen
Def display_details (self):
super().Rabatt()
Wenn Selbst.Angebot == True:
selbst.Preis = Selbst.Preis - Selbst.Preis * 0.15
Druck ("Buchname: %s" %Selbst.Titel)
drucken ("Autor Name: % s" % Selbst.Autor)
drucken ("Preis: %0.2f " % Selbst.Preis)
print ("Verwenden der übergeordneten Klasse:")
# Objekt der Elternklasse definieren
objbook = book ('Medical Microbiology', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, falsch)
# Anruffunktion zum Anzeigen des Buchentyps
OBJBOOK.bookType ()
# Anruffunktion zum Anzeigen von Rabattangeboten
OBJBOOK.Rabatt()
print ("\ Nusing Child Class:")
# Objekt der Kinderklasse definieren
obgengbook = eng_book ('Engineering Mathematics', 'H K Dass', 1, True, 50)
# Anruffunktion zum Anzeigen von Buchdetails
Objengbook.display_details ()

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt. Die erste Ausgabe hat das Objekt der übergeordneten Klasse generiert, und die zweite Ausgabe hat das Objekt der untergeordneten Klasse generiert.

Beispiel 2: Verwendung der Super () -Funktion in mehreren Vererben

Wenn eine neue Klasse durch Erben mehrerer Klassen generiert wird, wird diese Art der Vererbung als mehrere Erbschaften bezeichnet. Die Verwendung der Super () -Funktion in mehreren Erbschaften hat im folgenden Skript gezeigt. Abteilung ist die übergeordnete Klasse, die eine Konstruktormethode enthält, um die Variablen und die zu initialisieren Anzeige() Methode zum Drucken des Abteilungsnamens. Kurse Sind die Kinderklasse von der geerbt Abteilung Klasse, und es enthält eine Konstruktormethode und die display_course_info () Methode zur Anzeige des Details des Kurses. Lehrer Sind die Kinderklasse von der geerbt Abteilung Klasse, und es enthält eine Konstruktormethode und die Anzeige_Teacher_info () Methode zur Anzeige des Details des Lehrers. Lehrer_course ist die letzte untergeordnete Klasse des Skripts, das durch Erben beide definiert wurde Kurse Und Lehrer Klassen. Die Objekte der drei Kinderklassen wurden am Ende des Skripts erstellt, um auf die verschiedenen Methoden der Klassen zuzugreifen. Der super() Die Funktion wurde in der Konstruktormethode aller untergeordneten Klassen verwendet, um den Konstruktor der Elternklasse aufzurufen. Um das Objekt der untergeordneten Klasse zu erstellen, sind vier Argumentwerte erforderlich, da das Konstrukt der Abteilungsklasse vier Argumente enthält.

# Die Elternklasse definieren
Klassenabteilung ():
Def __init __ (Self, Dept_Name, Total_Course, Total_credit, Total_Teachers):
selbst.Dept_name = Dept_Name
selbst.Total_Courses = Total_Course
selbst.Total_credit = Total_credit
selbst.Total_Teachers = Total_Teachers
Def Display (Selbst):
drucken ("Abteilungsname: % s" % Selbst.Dept_Name)
# Definieren Sie die erste Kinderklasse
Klassenkurse (Abteilung):
def __init __ (Selbst, Name, Kurse, Credits, Lehrer):
# Rufen Sie den Konstruktor der Elternklassen auf
super().__init __ (Name, Kurse, Credits, Lehrer)
Def display_course_info (self):
drucken ("Gesamtkurse: % d" % Selbst.Total_Course)
drucken ("Gesamtkredite: % d" % Selbst.Gesamtpunktzahl)
# Definieren Sie die zweite Kinderklasse
Klassenlehrer (Abteilung):
def __init __ (Selbst, Name, Kurse, Credits, Lehrer):
# Rufen Sie den Konstruktor der Elternklassen auf
super().__init __ (Name, Kurse, Credits, Lehrer)
Def display_teacher_info (self):
drucken ("Gesamtlehrer: % d" % Selbst.Total_Teachers)
# Definieren Sie die dritte Kinderklasse, die aus zwei Klassen geerbt wurde
Klassenlehrer_Course (Kurse, Lehrer):
def __init __ (Selbst, Name, Kurse, Credits, Lehrer):
# Rufen Sie den Konstruktor der Elternklassen auf
super().__init __ (Name, Kurse, Credits, Lehrer)
Def display_details (self):
super().Anzeige()
super().display_course_info ()
super().Anzeige_Teacher_info ()
print ("Verwenden der ersten untergeordneten Klasse")
objcourses = Kurse ('CSE', 72, 150, 50)
Objcourse.Anzeige()
Objcourse.display_course_info ()
print ("\ Nusing die zweite Kinderklasse")
ObjTeachers = Lehrer ('BBA', 65, 140, 55)
ObjTeachers.Anzeige()
ObjTeachers.Anzeige_Teacher_info ()
print ("\ Nusing die dritte Klasse Klasse, die aus mehreren Klassen geerbt wurde")
objdct = lehrer_course ('Englisch', 60, 122, 20)
objdct.display_details ()

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt. Hier wurden drei Ausgänge generiert, indem die Objekte von drei Kinderklassen erstellt werden.

Abschluss:

Der super() Funktion kann nur in der untergeordneten Klasse verwendet werden, um den Konstruktor und jede andere übergeordnete Klassenmethode aufzurufen. Die Verwendungen dieser Funktion wurden in diesem Tutorial durch Erstellen eines einzelnen und mehrstufigen Vererbung gezeigt. Ich hoffe, der Zweck der Verwendung dieser Funktion in OOP wird nach dem Lesen dieses Tutorials gelöscht.