„Python“

„Python super“) funkcija

„Python super“) funkcija
„Python“ scenarijus gali atlikti tiek struktūrizuotą, tiek į objektą orientuotą programavimą (OOP). „Super“) yra įmontuota „Python“ OOP funkcija. Pirmenybė teikiama pagrindinėms OOP žinioms, norint suprasti programos tikslą ir naudojimą super () metodas. Vienas iš svarbiausių OOP bruožų yra paveldėjimas. Nauja klasė gali būti sukurta paveldint kitos klasės ypatybes, ir ji vadinama Paveldėjimu. Čia naujoji klasė vadinama poklasiu arba vaikų klase, o kita klasė vadinama superklasė arba tėvų klase. Super () Funkcija naudojama vaikų klasėje nurodant tėvų klasę ir pasiekiant visus tėvų klasės kintamuosius ir metodus. Ši funkcija leidžia paveldėjimą lengviau valdyti. Kaip šią funkciją galima naudoti „Python“, parodė ši pamoka.

1 pavyzdys: super () funkcijos naudojimas viename paveldime

Kai vaikų klasė sukuriama paveldint tėvų klasę, tada ji vadinama vieninteliu paveldėjimu. Naudojimasis super () Pavienio paveldėjimo funkcija rodoma šiame scenarijuje. Knyga yra pagrindinė klasė, kurioje yra konstruktoriaus metodas duomenims inicializuoti, bookType () - knygos tipo spausdinimo būdas ir nuolaida() nuolaidos pasiūlymo rodymo būdas yra prieinamas. Anglų knyga yra vaikų klasė, kurioje yra konstruktoriaus metodas, kai super () funkcija naudojama pakviesti tėvų klasės konstruktorių. Vaikų klasėje yra dar vienas metodas, pavadintas display_details () išspausdinti išsamią knygos informaciją. Tėvų ir vaikų klasių objektai buvo sukurti vėliau, kad klasių metodai būtų skirtingi.

# Apibrėžkite tėvų klasę
klasės knyga:
# Apibrėžkite konstruktorių
def __init __ (savastis, pavadinimas, autorius, tipas, pasiūlymas):
savarankiškai.pavadinimas = pavadinimas
savarankiškai.autorius = autorius
savarankiškai.tipas = tipas
savarankiškai.pasiūlymas = pasiūlymas
# Apibrėžkite knygos tipo rodymo funkciją
def bookType (savarankiškai):
jei pats.tipas == 1:
spausdinti ("% s yra% s knyga." %(savarankiškai.inžinerija “))
jei pats.tipas == 2:
spausdinti ("% s yra% s knyga." %(savarankiškai.pavadinimas („Medicinos“)))
jei pats.tipas == 3:
spausdinti ("% s yra% s knyga." %(savarankiškai.„Finansai“))
# Apibrėžkite nuolaidų pasiūlymo rodymo funkciją
def nuolaida (savarankiškai):
jei pats.pasiūlymas == Tiesa:
spausdinti ("Knyga turi nuolaidų pasiūlymą.")
Kitas:
spausdinti ("Knyga neturi nuolaidų pasiūlymo.")
# Apibrėžkite vaikų klasę
klasė „Eng_book“ (knyga):
# Apibrėžkite konstruktorių
def __init __ (savastis, pavadinimas, autorius, tipas, pasiūlymas, kaina):
super ().__init __ (pavadinimas, autorius, tipas, pasiūlymas)
savarankiškai.kaina = kaina
# Apibrėžkite funkciją, kad būtų rodoma išsami knygos informacija
def display_details (savarankiškai):
super ().nuolaida()
jei pats.pasiūlymas == Tiesa:
savarankiškai.kaina = pats.kaina - savęs.kaina * 0.15
spausdinti ("Knygos pavadinimas:% s"%.pavadinimas)
spausdinti ("Autoriaus vardas:% s"%.autorius)
spausdinti ("Kaina:% 0.2f "% savęs.kaina)
spausdinti ("Naudojant tėvų klasę:")
# Apibrėžkite tėvų klasės objektą
objbook = Book („Medicinos mikrobiologija“, Ernestas Jawetzas, Edwardas A. Adelbergas, Juozapas L. Melnickas, 2, klaidingas)
# Skambinimo funkcija, kad būtų rodomas knygos tipas
objektų knyga.bookType ()
# Skambinimo funkcija, kad būtų rodomas nuolaidos pasiūlymas
objektų knyga.nuolaida()
spausdinti ("\ nNaudojant vaikų klasę:")
# Apibrėžkite vaiko klasės objektą
objEngBook = Eng_book ('Inžinerinė matematika', 'H K Dass', 1, Tiesa, 50)
# Skambinimo funkcija, kad būtų rodoma knygos informacija
objEngBook.display_details ()

Išvestis:

Ši išvestis pasirodys atlikus pirmiau pateiktą scenarijų. Pirmoji išvestis sukurta naudojant tėvų klasės objektą, o antroji išvestis - naudojant antrosios klasės objektą.

2 pavyzdys: funkcijos super () naudojimas keliuose paveldėjimuose

Kai sukuriama nauja klasė paveldint kelias klases, šis paveldėjimo tipas vadinamas keletu paveldėjimų. Funkcijos super () naudojimas keliuose paveldėjimuose parodytas šiame scenarijuje. Departamentas yra pagrindinė klasė, kurioje yra konstruktoriaus metodas kintamiesiems inicializuoti ir rodyti () skyriaus pavadinimo spausdinimo metodas. Kursai yra vaikų klasė, paveldėta iš Departamentas klasę, joje yra konstruktoriaus metodas ir display_Course_info () metodas parodyti kurso detales. Mokytojai yra vaikų klasė, paveldėta iš Departamentas klasę, joje yra konstruktoriaus metodas ir display_Teacher_info () metodas parodyti mokytojo detales. Mokytojo kursas yra paskutinė vaikų scenarijaus klasė, apibrėžta paveldint abu Kursai ir Mokytojai klasės. Trijų vaikų klasių objektai buvo sukurti scenarijaus pabaigoje, kad būtų galima pasiekti skirtingus klasių metodus. The super () Funkcija buvo naudojama visų vaikų klasių konstruktoriaus metodo viduje, norint iškviesti tėvų klasės konstruktorių. Norint sukurti vaikų klasės objektą, reikalingos keturios argumentų vertės, nes „Department“ klasės konstrukcijoje yra keturi argumentai.

# Apibrėžkite tėvų klasę
klasės skyrius ():
def __init __ (savęs, skyriaus pavadinimas, viso kurso, viso kredito, viso mokytojo):
savarankiškai.dept_name = dept_name
savarankiškai.viso_kursai = viso_kursai
savarankiškai.total_credit = bendras_kreditas
savarankiškai.total_teachers = total_teachers
def ekranas (savarankiškai):
spausdinti ("Departamento pavadinimas:% s"%.dept_name)
# Apibrėžkite pirmąją vaikų klasę
klasės kursai (katedra):
def __init __ (savastis, vardas, kursai, įskaitos, mokytojai):
# Skambinkite tėvų klasės konstruktoriui
super ().__init __ (vardas, kursai, įskaitos, mokytojai)
def display_Course_info (savarankiškai):
spausdinti („Iš viso kursų:% d“% savęs.viso_kursių)
spausdinti ("Iš viso kreditų:% d"% savęs.total_credit)
# Apibrėžkite antrąją vaikų klasę
klasės mokytojai (skyrius):
def __init __ (savastis, vardas, kursai, įskaitos, mokytojai):
# Skambinkite tėvų klasės konstruktoriui
super ().__init __ (vardas, kursai, įskaitos, mokytojai)
def display_Teacher_info (savarankiškai):
spausdinti („Iš viso mokytojų:% d“% savęs.total_teachers)
# Apibrėžkite trečiąją vaikų klasę, paveldėtą iš dviejų klasių
klasės mokytojo kursas (kursai, mokytojai):
def __init __ (savastis, vardas, kursai, įskaitos, mokytojai):
# Skambinkite tėvų klasės konstruktoriui
super ().__init __ (vardas, kursai, įskaitos, mokytojai)
def display_details (savarankiškai):
super ().rodyti ()
super ().display_Course_info ()
super ().display_Teacher_info ()
spausdinti („Pirmosios klasės vaikų naudojimas“)
objCourses = Kursai („CSE“, 72, 150, 50)
objKursai.rodyti ()
objKursai.display_Course_info ()
spausdinti ("\ nNaudojant antrąją vaikų klasę")
objTeachers = Mokytojai („BBA“, 65, 140, 55)
objMokytojai.rodyti ()
objMokytojai.display_Teacher_info ()
spausdinti ("\ nTrečiosios vaikų klasės, paveldėtos iš kelių klasių, naudojimas")
objDCT = Mokytojo kursas („anglų“, 60, 122, 20)
objDCT.display_details ()

Išvestis:

Ši išvestis pasirodys atlikus pirmiau pateiktą scenarijų. Trys išėjimai buvo sugeneruoti kuriant trijų vaikų klasių objektus.

Išvada:

The super () Funkcija gali būti naudojama tik vaikų klasėje, norint iškviesti konstruktorių ir bet kurį kitą tėvų klasės metodą. Šios funkcijos naudojimo būdai buvo parodyti šioje mokymo programoje kuriant vieno ir kelių lygių paveldėjimą. Tikiuosi, kad perskaičius šią pamoką bus išvalytas šios funkcijos naudojimo OOP tikslas.

Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...
„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...