Primer-1: Uporaba funkcije super () pri posamezni dedovanju
Ko se podrejeni razred ustvari z dedovanjem nadrejenega razreda, se imenuje enojno dedovanje. Uporaba super () funkcija v enem nasledstvu je prikazana v naslednjem skriptu. Knjiga je tu nadrejeni razred, ki vsebuje konstruktorsko metodo za inicializacijo podatkov, bookType () način tiskanja vrste knjige in popust () način prikaza ponudbe s popustom je na voljo ali ne. Eng_book je podrejeni razred tukaj, ki vsebuje konstruktorsko metodo, kjer je super () funkcija se uporablja za klic konstruktorja nadrejenega razreda. Otroški razred ima drugo ime display_details () za tiskanje podrobnih informacij o knjigi. Predmeti nadrejenega in podrejenega razreda so bili ustvarjeni pozneje, da so poklicali različne metode razredov.
# Določite nadrejeni razredrazred Knjiga:
# Določite konstruktor
def __init __ (jaz, naslov, avtor, vrsta, ponudba):
sebe.naslov = naslov
sebe.avtor = avtor
sebe.vrsta = vrsta
sebe.ponudba = ponudba
# Določite funkcijo za prikaz vrste knjige
def bookType (self):
če jaz.vrsta == 1:
print ("% s je knjiga% s."% (samo.naslov, "Inženiring"))
če jaz.vrsta == 2:
print ("% s je knjiga% s."% (samo.naslov, "Medicinski"))
če jaz.vrsta == 3:
print ("% s je knjiga% s."% (samo.naslov, "Finance"))
# Določite funkcijo za prikaz ponudbe s popustom
def popust (samo):
če jaz.ponudba == True:
print ("Knjiga ima popust.")
sicer:
print ("Knjiga nima popusta.")
# Določite podrejeni razred
razred Eng_book (knjiga):
# Določite konstruktor
def __init __ (lastno ime, naslov, avtor, vrsta, ponudba, cena):
super ().__init __ (naslov, avtor, vrsta, ponudba)
sebe.cena = cena
# Določite funkcijo za prikaz podrobnosti o knjigi
def display_details (self):
super ().popust ()
če jaz.ponudba == True:
sebe.cena = samo.cena - samo.cena * 0.15
print ("Ime knjige:% s"% self.naslov)
print ("Ime avtorja:% s"% self.avtor)
print ("Cena:% 0.2f "% samozaposlene.cena)
print ("Uporaba nadrejenega razreda:")
# Določite objekt nadrejenega razreda
objbook = Knjiga ('Medicinska mikrobiologija', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, False)
# Funkcija klica za prikaz vrste knjige
objbook.bookType ()
# Funkcija klica za prikaz ponudbe s popustom
objbook.popust ()
print ("\ nUporaba otroškega razreda:")
# Določite objekt podrejenega razreda
objEngBook = Eng_book ('Inženirska matematika', 'H K Dass', 1, True, 50)
# Funkcija klica za prikaz podrobnosti o knjigi
objEngBook.display_details ()
Izhod:
Naslednji izhod se bo prikazal po izvedbi zgornjega skripta. Prvi izhod je ustvaril z uporabo predmeta nadrejenega razreda, drugi izhod pa z uporabo predmeta podrejenega razreda.
Primer-2: Uporaba funkcije super () v več dedovanjih
Ko se generira nov razred z dedovanjem več razredov, se ta vrsta dedovanja imenuje več dediščin. Uporaba funkcije super () v več dedovanjih je prikazana v naslednjem skriptu. Oddelek je nadrejeni razred, ki vsebuje konstruktorsko metodo za inicializacijo spremenljivk in zaslon () metoda za tiskanje imena oddelka. Tečaji so podrejeni razred, podedovan po Oddelek razred, vsebuje pa konstruktorsko metodo in display_Course_info () metoda za prikaz podrobnosti tečaja. Učitelji so podrejeni razred, podedovan po Oddelek razred, vsebuje pa konstruktorsko metodo in display_Teacher_info () metoda za prikaz podrobnosti učitelja. Tečaj učitelja je zadnji podrejeni razred skripta, ki je bil definiran z dedovanjem obeh Tečaji in Učitelji razredih. Predmeti treh podrejenih razredov so bili ustvarjeni na koncu skripta za dostop do različnih metod razredov. The super () funkcija je bila uporabljena znotraj metode konstruktorja vseh podrejenih razredov za klicanje konstruktorja nadrejenega razreda. Za izdelavo predmeta podrejenega razreda so potrebne štiri vrednosti argumentov, ker konstrukcija razreda oddelka vsebuje štiri argumente.
# Določite razred starševrazred Oddelek ():
def __init __ (self, ime oddelka, total_predmeti, total_credit, total_učitelji):
sebe.dept_name = ime_dept
sebe.total_courses = total_courses
sebe.total_credit = total_credit
sebe.total_učitelji = total_učitelji
def prikaz (samo):
print ("Ime oddelka:% s"% self.ime_dept)
# Določite prvi podrejeni razred
tečaji (oddelek):
def __init __ (jaz, ime, tečaji, krediti, učitelji):
# Pokliči konstruktor nadrejenega razreda
super ().__init __ (ime, tečaji, krediti, učitelji)
def display_Course_info (self):
natisni ("Skupaj tečajev:% d"% samo.total_courses)
print ("Skupno število zaslug:% d"% samozaposlitev.skupno_kredit)
# Določite drugi podrejeni razred
razredni učitelji (oddelek):
def __init __ (jaz, ime, tečaji, krediti, učitelji):
# Pokliči konstruktor nadrejenega razreda
super ().__init __ (ime, tečaji, krediti, učitelji)
def display_Teacher_info (self):
print ("Skupaj učiteljev:% d"% samo.skupaj_učiteljev)
# Določite tretji podrejeni razred, podedovan iz dveh razredov
razred Teacher_Course (Tečaji, učitelji):
def __init __ (jaz, ime, tečaji, krediti, učitelji):
# Pokličite konstruktor nadrejenega razreda
super ().__init __ (ime, tečaji, krediti, učitelji)
def display_details (self):
super ().zaslon ()
super ().display_Course_info ()
super ().display_Teacher_info ()
print ("Uporaba prvega podrejenega razreda")
objCourses = Tečaji ('CSE', 72, 150, 50)
objCourses.zaslon ()
objCourses.display_Course_info ()
print ("\ nUporaba drugega podrejenega razreda")
objTeachers = Učitelji ('BBA', 65, 140, 55)
objTeachers.zaslon ()
objTeachers.display_Teacher_info ()
print ("\ nUporaba tretjega podrejenega razreda, podedovanega iz več razredov")
objDCT = Tečaj učitelja ('angleščina', 60, 122, 20)
objDCT.display_details ()
Izhod:
Naslednji izhod se bo prikazal po izvedbi zgornjega skripta. Tu so bili ustvarjeni trije izhodi z ustvarjanjem predmetov treh podrejenih razredov.
Zaključek:
The super () Funkcija se lahko uporablja samo v podrejenem razredu za klic konstruktorja in katere koli druge metode nadrejenega razreda. Uporaba te funkcije je bila prikazana v tej vadnici z ustvarjanjem enostranske in večstopenjske dediščine. Upam, da bo namen uporabe te funkcije v OOP po branju te vadnice odstranjen.