Beispiel-1: Verwendung der Funktion super() in einer einzelnen Vererbung
Wenn eine untergeordnete Klasse durch Vererbung einer übergeordneten Klasse erstellt wird, wird sie als Einzelvererbung bezeichnet. Die Verwendung der Super() Funktion in Einzelvererbung hat sich im folgenden Skript gezeigt. Buch ist hier die übergeordnete Klasse, die eine Konstruktormethode zum Initialisieren der Daten enthält, Buchtyp() Methode zum Drucken des Buchtyps und Rabatt() Methode zum Anzeigen des Rabattangebots verfügbar ist oder nicht. Eng_book ist hier die untergeordnete Klasse, die eine Konstruktormethode enthält, wobei die Super() Funktion wird verwendet, um den Konstruktor der Elternklasse aufzurufen. Die untergeordnete Klasse hat eine andere Methode namens display_details() um die detaillierten Informationen des Buches auszudrucken. Die Objekte sowohl der Eltern- als auch der Kindklassen wurden später erstellt, um die verschiedenen Methoden der Klassen aufzurufen call.
# Definiere die ElternklasseKlassenbuch:
# Konstruktor definieren
def __init__(self, title, author, type, offer):
selbst.Titel = Titel
selbst.Autor = Autor
selbst.Typ = Typ
selbst.Angebot = Angebot
# Definieren Sie die Funktion zur Anzeige des Buchtyps
def bookType(self):
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, 'Medizin'))
wenn selbst.Typ == 3:
print("%s ist ein %s Buch." %(selbst.Titel, 'Finanzen'))
# Definieren Sie die Funktion zur Anzeige des Rabattangebots
def rabatt (selbst):
wenn selbst.Angebot == Richtig:
print("Das Buch hat ein Rabattangebot.")
sonst:
print("Das Buch hat kein Rabattangebot.")
# Definiere die untergeordnete Klasse
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 zum Anzeigen der Buchdetails
def display_details(selbst):
Super().Rabatt()
wenn selbst.Angebot == Richtig:
selbst.Preis = selbst.Preis - selbst.Preis * 0.fünfzehn
print("Buchname :%s" %self.Titel)
print("Autorenname :%s" % selbst.Autor)
print("Preis: %0.2f" % selbst.Preis)
print("Übergeordnete Klasse verwenden:")
# Objekt der Elternklasse definieren
objbook = Book('Medizinische Mikrobiologie', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick', 2, Falsch)
# Aufruffunktion zur Anzeige des Buchtyps
objbook.Buchtyp()
# Aufruffunktion um Rabattangebot anzuzeigen
objbook.Rabatt()
print("\nUntergeordnete Klasse verwenden:")
# Objekt der untergeordneten Klasse definieren
objEngBook = Eng_book('Engineering Mathematics', 'H K Dass', 1, True, 50)
# Aufruffunktion zum Anzeigen von Buchdetails
objEngBook.display_details()
Ausgabe:
Die folgende Ausgabe wird erscheinen, nachdem das obige Skript ausgeführt wurde. Die erste Ausgabe wurde unter Verwendung des Objekts der übergeordneten Klasse generiert und die zweite Ausgabe wurde unter Verwendung des Objekts der untergeordneten Klasse generiert.
Beispiel-2: Verwendung der Funktion super() in mehreren Vererbungen
Wenn eine neue Klasse durch Vererbung mehrerer Klassen generiert wird, wird diese Art der Vererbung als Mehrfachvererbung bezeichnet. Die Verwendung der super()-Funktion bei Mehrfachvererbung hat im folgenden Skript gezeigt. Abteilung ist die Elternklasse, die eine Konstruktormethode zum Initialisieren der Variablen enthält und die Anzeige() Methode zum Drucken des Abteilungsnamens. Kurse wird die untergeordnete Klasse von der geerbt? Abteilung -Klasse und enthält eine Konstruktormethode und die display_Kurs_info() Methode zum Anzeigen der Kursdetails. Lehrer wird die untergeordnete Klasse von der geerbt? Abteilung -Klasse und enthält eine Konstruktormethode und die and display_Teacher_info() Methode, um die Details des Lehrers anzuzeigen. Lehrer_Kurs ist die letzte untergeordnete Klasse des Skripts, die durch Vererbung beider definiert wurde Kurse und Lehrer Klassen. Die Objekte der drei untergeordneten Klassen wurden am Ende des Skripts erstellt, um auf die verschiedenen Methoden der Klassen zuzugreifen. Das Super() Die Funktion wurde in der Konstruktormethode aller untergeordneten Klassen verwendet, um den Konstruktor der übergeordneten Klasse aufzurufen. Zum Erstellen des untergeordneten Klassenobjekts sind vier Argumentwerte erforderlich, da das Konstrukt der Abteilungsklasse vier Argumente enthält.
# Elternklasse definierenKlasse Abteilung():
def __init__(self, dept_name, total_courses, total_credit, total_teachers):
selbst.abt_name = abt_name
selbst.total_courses = total_courses
selbst.total_credit = total_credit
selbst.total_teachers = total_teachers
def Anzeige (selbst):
print("Abteilungsname: %s" % selbst.Abteilungsname)
# Definiere die erste untergeordnete Klasse
Klasse Kurse (Abteilung):
def __init__(Selbst, Name, Kurse, Credits, Lehrer):
# Konstruktor der übergeordneten Klasse aufrufen
Super().__init__(Name, Kurse, Credits, Lehrer)
def display_Course_info(self):
print("Kurse insgesamt: %d" % selbst.total_kurse)
print("Total Credits: %d" % selbst.Gesamtpunktzahl)
# Definiere die zweite untergeordnete Klasse
Klassenlehrer (Abteilung):
def __init__(Selbst, Name, Kurse, Credits, Lehrer):
# Konstruktor der übergeordneten Klasse aufrufen
Super().__init__(Name, Kurse, Credits, Lehrer)
def display_Teacher_info(self):
print("Lehrer insgesamt: %d" % selbst.total_teachers)
# Definiere die dritte untergeordnete Klasse, die von zwei Klassen geerbt wurde
Klasse Teacher_Course(Kurse, Lehrer):
def __init__(Selbst, Name, Kurse, Credits, Lehrer):
# Rufen Sie den Konstruktor der übergeordneten Klasse auf
Super().__init__(Name, Kurse, Credits, Lehrer)
def display_details(selbst):
Super().Anzeige()
Super().display_Kurs_info()
Super().display_Teacher_info()
print("Die erste untergeordnete Klasse verwenden")
objCourses = Kurse('CSE', 72, 150, 50)
objKurse.Anzeige()
objKurse.display_Kurs_info()
print("\nDie zweite untergeordnete Klasse verwenden")
objTeachers = Teachers('BBA', 65, 140, 55)
objLehrer.Anzeige()
objLehrer.display_Teacher_info()
print("\nDie dritte untergeordnete Klasse verwenden, die von mehreren Klassen geerbt wurde")
objDCT = Teacher_Course('Englisch', 60, 122, 20)
objDCT.display_details()
Ausgabe:
Die folgende Ausgabe wird erscheinen, nachdem das obige Skript ausgeführt wurde. Hier wurden drei Ausgaben generiert, indem die Objekte von drei untergeordneten Klassen erstellt wurden.
Fazit:
Das Super() Die Funktion kann nur innerhalb der untergeordneten Klasse verwendet werden, um den Konstruktor und jede andere Methode der übergeordneten Klasse aufzurufen. Die Verwendung dieser Funktion wurde in diesem Tutorial gezeigt, indem eine ein- und mehrstufige Vererbung erstellt wurde. Ich hoffe, der Zweck der Verwendung dieser Funktion in OOP wird nach dem Lesen dieses Tutorials geklärt.