Näide 1: Funktsiooni super () kasutamine ühe pärandina
Kui lapseklass luuakse vanemaklassi pärimise kaudu, siis nimetatakse seda üksikpärandiks. Kasutamine Super() funktsioon ühes pärandis on näidatud järgmises skriptis. Raamat on siin vanemklass, mis sisaldab konstruktori meetodit andmete initsialiseerimiseks, bookType () - raamatu tüübi printimise meetod ja allahindlus () Sooduspakkumise kuvamise meetod on saadaval või mitte. Eng_book on siinne lasteklass, mis sisaldab konstruktori meetodit, kus Super() funktsiooni kasutatakse vanema klassi konstruktori kutsumiseks. Lasteklassis on veel üks nimega meetod kuva_detailid () raamatu üksikasjaliku teabe printimiseks. Nii vanemate kui ka laste klasside objektid on loodud hiljem, et nimetada klasside erinevaid meetodeid.
# Määratlege vanemklassklassi raamat:
# Defineerige konstruktor
def __init __ (mina, pealkiri, autor, tüüp, pakkumine):
ise.pealkiri = pealkiri
ise.autor = autor
ise.tüüp = tüüp
ise.pakkumine = pakkumine
# Määratlege raamatutüübi kuvamise funktsioon
def bookType (ise):
kui ise.tüüp == 1:
print ("% s on% s raamat."% (ise.nimetus, "Inseneritöö"))
kui ise.tüüp == 2:
print ("% s on% s raamat."% (ise.nimetus, "meditsiiniline"))
kui ise.tüüp == 3:
print ("% s on% s raamat."% (ise.pealkiri, "rahandus"))
# Määratlege allahindluse pakkumise kuvamise funktsioon
def allahindlus (ise):
kui ise.pakkumine == Tõsi:
print ("Raamatul on sooduspakkumine.")
muu:
print ("Raamatul pole allahindluspakkumist.")
# Määratlege lasteklass
klass Eng_book (raamat):
# Defineerige konstruktor
def __init __ (ise, pealkiri, autor, tüüp, pakkumine, hind):
Super().__init __ (pealkiri, autor, tüüp, pakkumine)
ise.hind = hind
# Määratlege raamatu üksikasjade kuvamise funktsioon
def display_details (ise):
Super().allahindlus ()
kui ise.pakkumine == Tõsi:
ise.hind = ise.hind - ise.hind * 0.15
print ("Raamatu nimi:% s"% ise.pealkiri)
print ("Autori nimi:% s"% ise.autor)
print ("Hind:% 0.2f "% ise.hind)
print ("Vanemklassi kasutamine:")
# Määratlege vanema klassi objekt
objektiraamat = Book ("meditsiiniline mikrobioloogia", "Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, vale)
# Helistamisfunktsioon raamatu tüübi kuvamiseks
objektiraamat.bookType ()
# Helistamisfunktsioon sooduspakkumise kuvamiseks
objektiraamat.allahindlus ()
print ("\ nLasteklassi kasutamine:")
# Määratlege alamklassi objekt
objEngBook = Eng_book ('Insenermatemaatika', 'H K Dass', 1, tõsi, 50)
# Kõne funktsioon raamatu üksikasjade kuvamiseks
eesmärkRaamat.kuva_detailid ()
Väljund:
Pärast ülaltoodud skripti käivitamist ilmub järgmine väljund. Esimene väljund on loodud vanema klassi objekti abil ja teine väljund on loodud alamklassi objekti abil.
Näide 2: Funktsiooni super () kasutamine mitme pärandi korral
Kui uus klass luuakse mitme klassi pärimise teel, nimetatakse seda tüüpi pärandit mitmeks pärandiks. Funktsiooni super () kasutamine mitme pärandi korral on näidatud järgmises skriptis. Osakond on algklass, mis sisaldab konstruktorite meetodit muutujate ja kuva () osakonna nime printimise meetod. Kursused on päritud lasteklass Osakond klass ning see sisaldab konstruktori meetodit ja display_Course_info () meetod kursuse detailide kuvamiseks. Õpetajad on päritud lasteklass Osakond klass ning see sisaldab konstruktori meetodit ja display_Teacher_info () meetod õpetaja detailide kuvamiseks. Õpetaja_kursus on skripti viimane lapseklass, mis on määratletud mõlema pärimisega Kursused ja Õpetajad klassides. Kolme lapseklassi objektid on loodud skripti lõppu, et pääseda juurde klasside erinevatele meetoditele. The Super() funktsiooni on kasutatud kõigi lapseklasside konstruktorimeetodis vanemklassi konstruktori kutsumiseks. Alamklassi objekti loomiseks on vaja nelja argumenti väärtust, kuna osakonna klassi konstruktsioon sisaldab nelja argumenti.
# Määratlege vanemate klassklassi osakond ():
def __init __ (ise, osakonna nimi, kokku_kursused, kogu_krediit, kokku_õpetajad):
ise.osakonna_nimi = osakonna_nimi
ise.kokku_kursused = kokku-kursused
ise.kogu_krediit = kogu_krediit
ise.kokku_õpetajad = kokku_õpetajad
def kuva (ise):
print ("Osakonna nimi:% s"% ise.osakonna nimi)
# Määratlege esimene lapseklass
klassi kursused (osakond):
def __init __ (mina, nimi, kursused, ainepunktid, õpetajad):
# Kõne vanema klassi konstruktorile
Super().__init __ (nimi, kursused, ainepunktid, õpetajad)
def display_Course_info (ise):
print ("Kursusi kokku:% d"% ise.kursused kokku)
print ("Krediitide koguarv:% d"% ise.kogu_krediit)
# Määratlege teine lapseklass
klassijuhatajad (osakond):
def __init __ (mina, nimi, kursused, ainepunktid, õpetajad):
# Kõne vanema klassi konstruktorile
Super().__init __ (nimi, kursused, ainepunktid, õpetajad)
def display_Teacher_info (ise):
print ("Õpetajaid kokku:% d"% ise.kokku_õpetajad)
# Määratlege kahest klassist päritud kolmas lapseklass
klassi õpetajakursus (kursused, õpetajad):
def __init __ (mina, nimi, kursused, ainepunktid, õpetajad):
# Helistage vanema klassi konstruktorile
Super().__init __ (nimi, kursused, ainepunktid, õpetajad)
def display_details (ise):
Super().kuva ()
Super().display_Course_info ()
Super().display_Teacher_info ()
print ("Esimese lapseklassi kasutamine")
objCourses = Kursused ('CSE', 72, 150, 50)
objKursused.kuva ()
objKursused.display_Course_info ()
print ("\ nTeise lapseklassi kasutamine")
objTeachers = õpetajad (BBA, 65, 140, 55)
objÕpetajad.kuva ()
objÕpetajad.display_Teacher_info ()
print ("\ nKolmelt klassilt päritud kolmanda alamklassi kasutamine")
objDCT = Teacher_Course (inglise keel, 60, 122, 20)
objDCT.kuva_detailid ()
Väljund:
Pärast ülaltoodud skripti käivitamist ilmub järgmine väljund. Kolme lapseklassi objektide loomisega on siin loodud kolm väljundit.
Järeldus:
The Super() funktsiooni saab kasutada ainult lasteklassis konstruktori ja mis tahes muu vanemklassi meetodi kutsumiseks. Selle funktsiooni kasutusviise on selles õpetuses näidatud, luues ühe- ja mitmetasandilise pärandi. Loodan, et selle funktsiooni OOP-s kasutamise eesmärk kustutatakse pärast selle õpetuse lugemist.