Piton

Python super () függvény

Python super () függvény
A Python szkript képes strukturált programozásra és objektum-orientált programozásra (OOP) is. A Super () az OOP beépített Python-függvénye. Az OOP alapvető ismereteit előnyben részesítjük az OOP céljának és használatának megértéséhez szuper() módszer. Az OOP egyik fontos jellemzője az öröklés. Új osztály létrehozható egy másik osztály jellemzőinek öröklésével, és ezt öröklésnek hívják. Itt az új osztályt alosztálynak vagy gyermekosztálynak, egy másik osztályt pedig szuperosztálynak vagy szülő osztálynak hívják. A szuper () függvény a gyermekosztályban a szülő osztályra való hivatkozásra és az összes szülő osztály változó és módszer elérésére szolgál. Ez a funkció könnyebben kezelhetővé teszi az öröklést. Az oktatóanyag megmutatta, hogy ez a függvény hogyan használható a Pythonban.

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ályt
osztá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ályt
osztá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.

A legjobb parancssori játékok Linuxhoz
A parancssor nem csak a legnagyobb szövetséges a Linux használatakor, hanem a szórakozás forrása is lehet, mert sok olyan szórakoztató játék lejátszás...
A legjobb Gamepad Mapping alkalmazások Linuxhoz
Ha egy tipikus billentyűzet és egér beviteli rendszer helyett szeretnél játékokat játszani Linuxon egy játékvezérlővel, van néhány hasznos alkalmazás ...
Hasznos eszközök Linux játékosok számára
Ha szeretsz Linuxon játszani, akkor valószínű, hogy olyan alkalmazásokat és segédprogramokat használtál, mint a Wine, a Lutris és az OBS Studio a játé...