1. példa: A super () függvény használata egyetlen öröklésben
Ha egy gyermekosztály egy szülő osztály öröklésével jön létre, akkor ezt egyetlen öröklésnek hívják. A szuper() Az egyetlen öröklés funkció az alábbi szkriptben látható. Könyv itt az a szülőosztály, amely egy konstruktor módszert tartalmaz az adatok inicializálására, bookType () - módszer a könyv típusának kinyomtatására, és - kedvezmény() A diszkont ajánlat megjelenítésének módja rendelkezésre áll vagy sem. Eng_book a gyermek osztály itt, amely tartalmaz egy konstruktor módszert, ahol a szuper() függvény a szülő osztály konstruktorának meghívására szolgál. A gyermekosztálynak van egy másik neve is display_details () a könyv részletes információinak kinyomtatásához. A szülő és a gyermek osztály objektumait később hozták létre, hogy az osztályok különböző módszereit hívják meg.
# Határozza meg a szülő osztálytosztály Könyv:
# Definiálja a kivitelezőt
def __init __ (saját, cím, szerző, típus, ajánlat):
maga.cím = cím
maga.szerző = szerző
maga.type = type
maga.ajánlat = ajánlat
# Határozza meg a könyv típusának megjelenítéséhez szükséges funkciót
def bookType (self):
ha önmaga.type == 1:
nyomtatás ("% s egy% s könyv." %(maga.(„Műszaki” cím)))
ha önmaga.type == 2:
nyomtatás ("% s egy% s könyv." %(maga.(orvosi cím)))
ha önmaga.típus == 3:
nyomtatás ("% s egy% s könyv." %(maga.cím, „Pénzügy”))
# Határozza meg a kedvezményes ajánlat megjelenítésének funkcióját
def kedvezmény (saját):
ha önmaga.ajánlat == Igaz:
nyomtatás ("A könyv kedvezményes ajánlattal rendelkezik.")
más:
nyomtatás ("A könyvnek nincs kedvezményes ajánlata.")
# Határozza meg a gyermekosztályt
osztály Eng_book (könyv):
# Definiálja a kivitelezőt
def __init __ (saját, cím, szerző, típus, ajánlat, ár):
szuper().__init __ (cím, szerző, típus, ajánlat)
maga.ár = ár
# Határozza meg a könyv részleteinek megjelenítéséhez szükséges funkciót
def display_details (saját):
szuper().kedvezmény()
ha önmaga.ajánlat == Igaz:
maga.ár = önmaga.ár - önmaga.ár * 0.15
nyomtatás ("Könyv neve:% s"% self.cím)
print ("Szerző neve:% s"% self.szerző)
print ("Ár:% 0.2f "% self.ár)
print ("A szülői osztály használata:")
# Definiálja a szülő osztály objektumát
objbook = Könyv ("Orvosi mikrobiológia", "Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, hamis)
# Hívás funkció a könyv típusának megjelenítéséhez
objektumkönyv.bookType ()
# Hívás funkció az akciós ajánlat megjelenítéséhez
objektumkönyv.kedvezmény()
print ("\ n Gyermekosztály használata:")
# Definiálja a gyermekosztály objektumát
objEngBook = Eng_book ('Mérnöki matematika', 'H K Dass', 1, Igaz, 50)
# Hívás funkció a könyv részleteinek megjelenítéséhez
objEngBook.display_details ()
Kimenet:
A fenti kimenet a fenti parancsfájl végrehajtása után jelenik meg. Az első kimenet a szülő osztály objektumának felhasználásával, a második kimenete a gyermek osztály objektumának felhasználásával jött létre.
2. példa: A super () függvény használata több öröklésben
Ha egy új osztály több osztály öröklésével jön létre, akkor ezt a fajta öröklődést több örökségnek nevezik. A super () függvény több öröklésben történő használatát a következő szkript mutatja. Osztály az a szülőosztály, amely egy konstruktor módszert tartalmaz a változók és a kijelző() módszer az osztály nevének kinyomtatására. Tanfolyamok a gyermekosztály örökölt a Osztály osztály, és tartalmaz egy konstruktor módszert és a display_Course_info () módszer a tanfolyam részleteinek megjelenítésére. Tanárok a gyermekosztály örökölt a Osztály osztály, és tartalmaz egy konstruktor módszert és a display_Teacher_info () módszer a tanár részleteinek megjelenítésére. Tanár_tanfolyam a szkript utolsó gyermekosztálya, amelyet mindkettő öröklésével határoztak meg Tanfolyamok és Tanárok osztályok. A három gyermekosztály objektumai a szkript végén jöttek létre, hogy hozzáférjenek az osztályok különböző módszereihez. A szuper() függvényt használták az összes gyermek osztály konstruktor metódusán belül a szülő osztály konstruktorának meghívására. Négy argumentumérték szükséges a gyermekosztály objektum létrehozásához, mivel a Department osztály konstrukciója négy argumentumot tartalmaz.
# Definiálja a szülői osztálytosztály Tanszék ():
def __init __ (saját, tanszék_neve, összes_tanfolyamok, teljes_kredit, összes_tanárok):
maga.osztó_név = osztál_név
maga.összes_tanfolyam = összes_tanfolyam
maga.total_credit = total_credit
maga.total_teachers = összesen_teachers
def kijelző (saját):
nyomtatás ("Osztály neve:% s"% self.osztály neve
# Határozza meg az első gyermek osztályt
osztály tanfolyamok (tanszék):
def __init __ (saját név, név, tanfolyamok, kreditek, tanárok):
# Hívja a szülő osztály konstruktorát
szuper().__init __ (név, tanfolyamok, kreditek, tanárok)
def display_Course_info (self):
nyomtatás ("Összes tanfolyam:% d"% saját.tanfolyamok összesen)
print ("Összes kredit:% d"% self.teljes_hitel)
# Határozza meg a második gyermekosztályt
osztályfőnökök (tanszék):
def __init __ (saját név, név, tanfolyamok, kreditek, tanárok):
# Hívja a szülő osztály konstruktorát
szuper().__init __ (név, tanfolyamok, kreditek, tanárok)
def display_Teacher_info (self):
nyomtatás ("Összes tanár:% d"% saját.összes_tanárok)
# Határozza meg a két osztályból örökölt harmadik gyermekosztályt
osztály Tanár_tanfolyam (tanfolyamok, tanárok):
def __init __ (saját név, név, tanfolyamok, kreditek, tanárok):
# Hívja a szülő osztály konstruktorát
szuper().__init __ (név, tanfolyamok, kreditek, tanárok)
def display_details (saját):
szuper().kijelző()
szuper().display_Course_info ()
szuper().display_Teacher_info ()
print ("Az első gyermekosztály használata")
objCourses = Tanfolyamok ('CSE', 72, 150, 50)
objCourses.kijelző()
objCourses.display_Course_info ()
print ("\ nA második gyermekosztály használata")
objTeachers = Tanárok („BBA”, 65, 140, 55)
objTeachers.kijelző()
objTeachers.display_Teacher_info ()
print ("\ nA több osztályból örökölt harmadik gyermekosztály használata")
objDCT = Tanár_tanfolyam („angol”, 60, 122, 20)
objDCT.display_details ()
Kimenet:
A fenti kimenet a fenti parancsfájl végrehajtása után jelenik meg. Három kimenetet generáltunk itt három gyermekosztály objektumainak létrehozásával.
Következtetés:
A szuper() függvény csak a gyermek osztályon belül használható a konstruktor és bármely más szülő osztály metódus meghívására. A funkció használatát ebben az oktatóanyagban egy- és többszintű öröklődés létrehozásával mutattuk be. Remélem, hogy ennek a funkciónak az OOP-ban való felhasználása törlődik az oktatóanyag elolvasása után.