Exempel 1: Användning av super () -funktionen i enstaka arv
När en underordnad klass skapas genom att ärva en förälderklass, kallas den enstaka arv. Användningen av super() funktion i enstaka arv har visats i följande skript. bok är den överordnade klassen här som innehåller en konstruktormetod för att initiera data, bookType () metod för att skriva ut boktypen och rabatt() metod för att visa rabatterbjudandet är tillgängligt eller inte. Eng_book är barnklassen här som innehåller en konstruktörmetod där super() -funktionen används för att anropa konstruktören för föräldraklassen. Barnklassen har en annan metod som heter display_details () för att skriva ut detaljerad information i boken. Objekten för både föräldrar- och barnklasser har skapats senare för att kalla klassens olika metoder.
# Definiera föräldraklassenklassbok:
# Definiera konstruktör
def __init __ (själv, titel, författare, typ, erbjudande):
själv.titel = titel
själv.författare = författare
själv.typ = typ
själv.erbjudande = erbjudande
# Definiera funktionen för att visa boktypen
def bookType (själv):
om själv.typ == 1:
skriva ut ("% s är en% s-bok."% (själv.titel, 'Engineering'))
om själv.typ == 2:
skriva ut ("% s är en% s-bok."% (själv.titel, "medicinsk"))
om själv.typ == 3:
skriva ut ("% s är en% s-bok."% (själv.titel, 'Ekonomi'))
# Definiera funktionen för att visa rabatterbjudandet
def rabatt (själv):
om själv.erbjudande == True:
tryck ("Boken har rabatterbjudande.")
annan:
tryck ("Boken har inget rabatterbjudande.")
# Definiera barnklassen
klass Eng_book (Bok):
# Definiera konstruktör
def __init __ (själv, titel, författare, typ, erbjudande, pris):
super().__init __ (titel, författare, typ, erbjudande)
själv.pris = pris
# Definiera funktionen för att visa bokdetaljerna
def display_details (själv):
super().rabatt()
om själv.erbjudande == True:
själv.pris = själv.pris - själv.pris * 0.15
skriva ut ("Boknamn:% s"% själv.titel)
skriva ut ("Författarnamn:% s"% själv.författare)
tryck ("Pris:% 0.2f "% själv.pris)
skriva ut ("Använda föräldraklass:")
# Definiera objekt för överordnad klass
objbook = Book ('Medical Microbiology', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, False)
# Samtalsfunktion för att visa boktyp
objbook.bookType ()
# Ringfunktion för att visa rabatterbjudande
objbook.rabatt()
skriva ut ("\ nAnvända barnklass:")
# Definiera objekt för barnklassen
objEngBook = Eng_book ('Engineering Mathematics', 'H K Dass', 1, True, 50)
# Ringfunktion för att visa bokdetaljer
objEngBook.display_details ()
Produktion:
Följande utdata visas efter att ovanstående skript har körts. Den första utgången har genererats med hjälp av moderklassens objekt, och den andra utgången har genererats med hjälp av objektet för underklassen.
Exempel 2: Användning av super () -funktionen i flera arv
När en ny klass genereras genom att ärva flera klasser kallas denna typ av arv flera arv. Användningen av super () -funktionen i flera arv har visats i följande skript. Avdelning är den överordnade klassen som innehåller en konstruktormetod för att initialisera variablerna och visa() metod för att skriva ut avdelningsnamnet. Kurser är barnklassen ärvda från Avdelning klass, och den innehåller en konstruktörmetod och display_Course_info () metod för att visa kursens detaljer. Lärare är barnklassen ärvda från Avdelning klass, och den innehåller en konstruktörmetod och display_Teacher_info () metod för att visa lärarens detaljer. Lärarkurs är den sista underklassen i manuset som har definierats genom att ärva båda Kurser och Lärare klasser. Objekten för de tre barnklasserna har skapats i slutet av manuset för att få tillgång till klassens olika metoder. De super() funktionen har använts i konstruktormetoden för alla barnklasser för att ringa föräldraklassens konstruktör. Fyra argumentvärden krävs för att skapa underordnad klassobjekt eftersom avdelningsklassens konstruktion innehåller fyra argument.
# Definiera föräldraklassklass Avdelning ():
def __init __ (själv, dept_name, total_courses, total_credit, total_teachers):
själv.avdelningsnamn = avdelningsnamn
själv.total_courses = total_courses
själv.total_kredit = total_kredit
själv.total_lärare = total_lärare
def-display (själv):
skriva ut ("Avdelningsnamn:% s"% själv.avdelningsnamn)
# Definiera första barnklassen
klasskurser (Institution):
def __init __ (själv, namn, kurser, poäng, lärare):
# Ring föräldraklasskonstruktören
super().__init __ (namn, kurser, poäng, lärare)
def display_Course_info (själv):
tryck ("Totalt antal kurser:% d"% själv.totalt_kurser)
skriva ut ("Totala poäng:% d"% själv.total_kredit)
# Definiera den andra barnklassen
klasslärare (avdelning):
def __init __ (själv, namn, kurser, poäng, lärare):
# Ring föräldraklasskonstruktören
super().__init __ (namn, kurser, poäng, lärare)
def display_Teacher_info (själv):
tryck ("Totalt antal lärare:% d"% själv.totalt_lärare)
# Definiera den tredje barnklassen som ärvs från två klasser
klass Teacher_Course (Kurser, lärare):
def __init __ (själv, namn, kurser, poäng, lärare):
# Ring föräldraklasskonstruktören
super().__init __ (namn, kurser, poäng, lärare)
def display_details (själv):
super().visa()
super().display_Course_info ()
super().display_Teacher_info ()
skriva ut ("Använda första barnklassen")
objCourses = Kurser ('CSE', 72, 150, 50)
objektKurser.visa()
objCourses.display_Course_info ()
skriva ut ("\ nAnvända andra barnklassen")
objTeachers = Lärare ('BBA', 65, 140, 55)
objTeachers.visa()
objTeachers.display_Teacher_info ()
skriva ut ("\ nAnvända den tredje underordnade klassen som ärvs från flera klasser")
objDCT = Teacher_Course ('engelska', 60, 122, 20)
objDCT.display_details ()
Produktion:
Följande utdata visas efter att ovanstående skript har körts. Tre resultat har genererats här genom att skapa objekt för tre barnklasser.
Slutsats:
De super() -funktionen kan bara användas inom barnklassen för att ringa konstruktören och alla andra föräldraklassmetoder. Användningen av denna funktion har visats i denna handledning genom att skapa en och flera nivåer Arv. Jag hoppas att syftet med att använda den här funktionen i OOP kommer att rensas efter att ha läst denna handledning.