Príklad-1: Použitie funkcie super () v jednoduchej dedičnosti
Keď sa podradená trieda vytvorí dedením po nadradenej triede, nazýva sa to jednoduchá dedičnosť. Používanie Super() funkcia v jednej dedičnosti sa ukázala v nasledujúcom skripte. Kniha je tu nadradená trieda, ktorá obsahuje metódu konštruktora na inicializáciu údajov, bookType () - spôsob tlače typu knihy a - zľava () spôsob zobrazenia zľavovej ponuky je alebo nie je k dispozícii. Eng_book je tu podradená trieda, ktorá obsahuje metódu konštruktora, kde Super() funkcia sa používa na volanie konštruktora nadradenej triedy. Podradená trieda má inú pomenovanú metódu display_details () vytlačiť podrobné informácie o knihe. Objekty rodičovských aj podradených tried boli vytvorené neskôr, aby zavolali rôzne metódy tried.
# Definujte nadradenú triedutriedna kniha:
# Definujte konštruktor
def __init __ (ja, titul, autor, typ, ponuka):
ja.titul = titul
ja.autor = autor
ja.typ = typ
ja.offer = ponuka
# Definujte funkciu na zobrazenie typu knihy
def bookType (vlastný):
ak ja.typ == 1:
print ("% s je kniha% s."% (vlastné.názov „Inžiniering“))
ak ja.typ == 2:
print ("% s je kniha% s."% (vlastné.názov „Lekárske“))
ak ja.typ == 3:
print ("% s je kniha% s."% (vlastné.názov „Financie“))
# Definujte funkciu na zobrazenie zľavovej ponuky
def zľava (vlastná):
ak ja.offer == Pravda:
tlač („Kniha má zľavovú ponuku.„)
inak:
tlač („Kniha nemá zľavovú ponuku.„)
# Definujte triedu dieťaťa
trieda Eng_book (kniha):
# Definujte konštruktor
def __init __ (ja, titul, autor, typ, ponuka, cena):
Super().__init __ (názov, autor, typ, ponuka)
ja.cena = cena
# Definujte funkciu na zobrazenie podrobností knihy
def display_details (self):
Super().zľava ()
ak ja.offer == Pravda:
ja.cena = ja.cena - ja.cena * 0.15
print ("Názov knihy:% s"% self.názov)
print ("Meno autora:% s"% seba.autor)
print („Cena:% 0.2f "% seba.cena)
print ("Používanie nadradenej triedy:")
# Definujte objekt nadradenej triedy
objbook = Kniha („Lekárska mikrobiológia“, „Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, False)
# Volacia funkcia na zobrazenie typu knihy
objbook.bookType ()
# Volacia funkcia na zobrazenie zľavovej ponuky
objbook.zľava ()
print ("\ nPoužívanie podradenej triedy:")
# Definujte objekt podradenej triedy
objEngBook = Eng_book ('Engineering Mathematics', 'H K Dass', 1, True, 50)
# Volacia funkcia pre zobrazenie detailov knihy
objEngBook.display_details ()
Výkon:
Po vykonaní vyššie uvedeného skriptu sa zobrazí nasledujúci výstup. Prvý výstup sa vygeneroval pomocou objektu nadradenej triedy a druhý výstup sa vygeneroval pomocou objektu podradenej triedy.
Príklad 2: Použitie funkcie super () vo viacerých dedičstvách
Keď sa nová trieda vygeneruje dedením viacerých tried, tento typ dedenia sa nazýva viacnásobné dedičstvo. Použitie funkcie super () vo viacerých dedičstvách sa ukázalo v nasledujúcom skripte. Oddelenie je nadradená trieda, ktorá obsahuje metódu konštruktora na inicializáciu premenných a display () metóda na vytlačenie názvu oddelenia. Kurzy sú triedou detí zdedenou z Oddelenie triedy a obsahuje metódu konštruktora a display_Course_info () metóda na zobrazenie podrobností o kurze. Učitelia sú triedou detí zdedenou z Oddelenie triedy a obsahuje metódu konštruktora a display_Teacher_info () metóda na zobrazenie detailu učiteľa. Teacher_Course je posledná podradená trieda skriptu, ktorá bola definovaná dedením oboch Kurzy a Učitelia triedy. Objekty troch podradených tried boli vytvorené na konci skriptu, aby umožnili prístup k rôznym metódam tried. The Super() funkcia bola použitá vo vnútri metódy konštruktora všetkých podradených tried na volanie konštruktora nadradenej triedy. Na vytvorenie objektu podradenej triedy sú potrebné štyri hodnoty argumentov, pretože konštrukt triedy Department obsahuje štyri argumenty.
# Definujte nadradenú trieduoddelenie triedy ():
def __init __ (self, dept_name, total_courses, total_credit, total_teachers):
ja.dept_name = dept_name
ja.total_courses = total_courses
ja.total_credit = total_credit
ja.total_teachers = total_teachers
zobrazenie def (samo):
print ("Názov oddelenia:% s"% seba.dept_name)
# Definujte prvú podradenú triedu
kurzy (oddelenie):
def __init __ (ja, meno, kurzy, kredity, učitelia):
# Zavolajte konštruktora rodičovskej triedy
Super().__init __ (meno, kurzy, kredity, učitelia)
def display_Course_info (self):
print ("Celkový počet kurzov:% d"% sám.total_courses)
print ("Celkový počet kreditov:% d"% sám.celkový_úver)
# Definujte druhú podradenú triedu
triedni učitelia (katedra):
def __init __ (ja, meno, kurzy, kredity, učitelia):
# Zavolajte konštruktora nadradenej triedy
Super().__init __ (meno, kurzy, kredity, učitelia)
def display_Teacher_info (vlastné):
print ("Celkový počet učiteľov:% d"% seba.celkom_učitelia)
# Definujte tretiu podradenú triedu zdedenú z dvoch tried
trieda Teacher_Course (kurzy, učitelia):
def __init __ (ja, meno, kurzy, kredity, učitelia):
# Zavolajte konštruktora nadradenej triedy
Super().__init __ (meno, kurzy, kredity, učitelia)
def display_details (self):
Super().display ()
Super().display_Course_info ()
Super().display_Teacher_info ()
print ("Používanie prvej podradenej triedy")
objCourses = Courses ('CSE', 72, 150, 50)
objCourses.display ()
objCourses.display_Course_info ()
print ("\ nPoužitie druhej podradenej triedy")
objTeachers = učitelia ('BBA', 65, 140, 55)
objTeachers.display ()
objTeachers.display_Teacher_info ()
print ("\ nPoužitie tretej podradenej triedy zdedenej z viacerých tried")
objDCT = Teacher_Course ('anglicky', 60, 122, 20)
objDCT.display_details ()
Výkon:
Po vykonaní vyššie uvedeného skriptu sa zobrazí nasledujúci výstup. Vytvorením objektov troch podradených tried sa tu vygenerovali tri výstupy.
Záver:
The Super() Túto funkciu je možné použiť iba vo vnútri podradenej triedy na volanie konštruktora a akejkoľvek inej metódy nadradenej triedy. Použitie tejto funkcie bolo v tejto príručke ukázané vytvorením jedno a viacúrovňového dedičstva. Dúfam, že účel použitia tejto funkcie v OOP bude objasnený po prečítaní tohto tutoriálu.