Python

Dedovanje Pythona

Dedovanje Pythona

Python je objektno usmerjen programski jezik. V objektno usmerjenem programskem jeziku ustvarimo razrede in izvajamo predvideno funkcionalnost. Dedovanje je temeljna značilnost objektno usmerjenih programskih jezikov. Dedovanje lahko definiramo kot sposobnost enega razreda podedovati vse funkcije in lastnosti drugega razreda. Dedovanje v bistvu omogoča razširitev lastnosti obstoječega razreda. Dedovanje se vzpodbuja z dvema glavnima konceptoma:

  1. Starševski razred ali osnovni razred
  2. Otroški razred ali izpeljani razred

Nadrejeni razred je razred, ki omogoča podedovanje drugih razredov. Imenuje se tudi osnovni razred. Razred Child ali izpeljani razred je tisti razred, ki podeduje vse lastnosti in funkcije drugega razreda. Dedovanje spodbuja več koristi, tj.e., je predstavitev pojava dedovanja v resničnem svetu. Spodbuja ponovno uporabo kode. Če je funkcija definirana v enem razredu, lahko drugi razred podeduje ta razred in uporablja vse obstoječe funkcije. Za izvajanje podobnih nalog ni treba vedno znova pisati iste kode. Dedovanje se uporablja na več ravneh. Če je na primer razred B podedovan od A, razred C pa od razreda B, ima razred C vse lastnosti razreda B in razreda A. Sintaksa dedovanja je naslednja:

Razred ParentClass:
Podrobnosti o izvedbi nadrejenega razreda
razred ChildClass:
Podrobnosti o izvedbi otroškega razreda

Čeprav ima podrejeni razred dostop do vseh funkcij in funkcij nadrejenega razreda, pa lahko doda tudi svoje nove funkcije in funkcije.

Ta članek opisuje in zajema vse vidike dedovanja Pythona.

Izvajanje dedovanja v Pythonu

Dedovanje se lahko uporabi v številnih situacijah. Predpostavimo, da gradite sistem programske opreme za univerzo. Lahko ga sestavlja več zainteresiranih strani, kot so študentje, učitelji, osebje itd. Vsaka oseba ima torej ime, starost, e-pošto in druge pogoste lastnosti. Ni treba prijaviti vseh lastnosti vsakega razreda posebej. Lahko naredimo razred osebe in vsi razredi zainteresiranih strani lahko podedujejo vse skupne lastnosti in funkcije iz razreda osebe. V tem primeru ni treba vedno znova pisati skupnih lastnosti v vsak razred. Podobno lahko upoštevamo tudi razred živali. Na tem svetu je na stotine vrst živali. Vse živali jedo, spijo in imajo tudi nekatere vrste. Ta koncept je mogoče uporabiti tudi z dedovanjem.

Razmislimo o živali kot o super razredu in izvedimo dedovanje. V spodnjem primeru smo ustvarili en razred živali. Razred živali je nadrejeni razred. Poleg tega smo ustvarili razrede Dog in Cat, ki podeduje lastnosti in funkcije razreda živali. Ključna beseda pass se uporablja v podrejenem razredu, kadar v podrejenem razredu ni treba izvajati razširjene funkcije.

#creating nadrejeni razred
razred Žival:
#inicialization function
#initilization ime živali in vrsto vrste
def __init __ (self, name, specie_type):
sebe.ime = ime
sebe.specie_type = specie_type
#a funkcija za tiskanje imena živali
def printname (self):
print ("Ime živali je:", samo.ime)
#a funkcija za tiskanje vrste živali
def printspecie (self):
print ("Vrsta vrste je:", samo.specie_type)
# ustvarjanje razreda psov kot otroškega razreda razreda živali
razred pes (žival):
# brez razširitve ali spremembe
podajo
#now pasji razred ima dostop do vseh funkcij in lastnosti živalskega razreda
#creating predmet pasjega razreda
dogObj = pes ("pes", "mesojed")
dogObj.ime tiskanja ()
dogObj.printspecie ()
# ustvarjanje razreda mačk kot otroškega razreda razreda živali
razred Mačka (žival):
# funkcija inicializacije razreda mačk
def __init __ (samo):
#clicing in uporaba funkcije inicializacije razreda živali
Žival.__init __ (jaz, "mačka", "mesojedi sesalec")
#now razred mačk ima dostop do vseh funkcij in lastnosti razreda živali
#creating objekt razreda cat
catObj = Cat ()
catObj.ime tiskanja ()
catObj.printspecie ()

Izhod

The »Žival.__init __ (jaz, "mačka", "mesojedi sesalec") " call je funkcija inicializacije razreda Animal.

Funkcija super ()

Python ponuja vgrajeno funkcijo super () za podedovanje vseh lastnosti in funkcij nadrejenega razreda. Ko uporabljamo funkcijo super (), imena nadrejenega razreda, kot smo to storili, ni treba omenjati »Žival.__init __ (jaz, "mačka", "mesojedi sesalec") " vendar funkcija super () samodejno kaže na nadrejeni razred. Uporabimo super funkcijo.

#creating nadrejeni razred
razred Žival:
#inicialization function
#initilization ime živali in vrsto vrste
def __init __ (self, name, specie_type):
sebe.ime = ime
sebe.specie_type = specie_type
#a funkcija za tiskanje imena živali
def printname (self):
print ("Ime živali je:", samo.ime)
#a funkcija za tiskanje vrste živali
def printspecie (self):
print ("Vrsta vrste je:", samo.specie_type)
# ustvarjanje razreda psov kot otroškega razreda razreda živali
razred pes (žival):
# using super () funkcijo
def __init __ (self, name, specie_type):
super ().__init __ (ime, vrsta_vrste)
#now pasji razred ima dostop do vseh funkcij in lastnosti živalskega razreda
#creating predmet pasjega razreda
dogObj = pes ("pes", "mesojed")
dogObj.ime tiskanja ()
dogObj.printspecie ()
# ustvarjanje razreda mačk kot otroškega razreda razreda živali
razred Mačka (žival):
# funkcija inicializacije razreda mačk
# using super () funkcijo
def __init __ (self, name, specie_type):
super ().__init __ (ime, vrsta_vrste)
#now razred mačk ima dostop do vseh funkcij in lastnosti razreda živali
#creating objekt razreda cat
catObj = Mačka ("mačka", "mesojedi sesalec")
catObj.ime tiskanja ()
catObj.printspecie ()

Izhod

Zdaj pa dodajte še nekaj funkcionalnosti v otroške razrede. Vsak razred podeduje skupne lastnosti in funkcije od nadrejenega razreda, vendar ima lahko podrejeni razred nekaj dodatnega razreda, ki je namenjen temu razredu. Zdaj pa ustvarimo nekaj dodatnih lastnosti in funkcij v razredu psov in mačk.

#creating nadrejeni razred
razred Žival:
#inicialization function
#initilization ime živali in vrsto vrste
def __init __ (self, name, specie_type):
sebe.ime = ime
sebe.specie_type = specie_type
#a funkcija za tiskanje imena živali
def printname (self):
print ("Ime živali je:", samo.ime)
#a funkcija za tiskanje vrste živali
def printspecie (self):
print ("Vrsta vrste je:", samo.specie_type)
# ustvarjanje razreda psov kot otroškega razreda razreda živali
razred pes (žival):
# using super () funkcijo
#pet ime je na novo dodana funkcionalnost
def __init __ (self, name, specie_type, pet_name):
super ().__init __ (ime, vrsta_vrste)
sebe.pet_name = pet_name
# ustvarjanje nove funkcije
def printpetname (samo):
print ("Ime hišnega ljubljenčka je:", samo.ime ljubljenčka)
#now pasji razred ima dostop do vseh funkcij in lastnosti živalskega razreda
#creating predmet pasjega razreda
dogObj = pes ("pes", "mesojed", "max")
dogObj.ime tiskanja ()
dogObj.printspecie ()
dogObj.printpetname ()
# ustvarjanje razreda mačk kot otroškega razreda razreda živali
razred Mačka (žival):
# funkcija inicializacije razreda mačk
# using super () funkcijo
#adding lastnosti hrane in imena hišnega ljubljenčka
def __init __ (jaz, ime, vrsta_vrste, hrana, ime_jema):
super ().__init __ (ime, vrsta_vrste)
sebe.hrana = hrana
sebe.pet_name = pet_name
#new funkcija za dostop do informacij o hrani
def printfood (samo):
print ("Mačka ima rad:", samo.hrana)
#new funkcija za ime hišnega ljubljenčka
def printpetname (samo):
print ("Ime hišnega ljubljenčka je:", samo.ime ljubljenčka)
#now razred mačk ima dostop do vseh funkcij in lastnosti razreda živali
#creating objekt razreda cat
catObj = Mačka ("mačka", "mesojedi sesalec", "piškoti", "marjetica")
catObj.ime tiskanja ()
catObj.printspecie ()

Izhod

Preglasitve funkcij

Preglasitev funkcije je pomemben koncept pri dedovanju. Funkcija se imenuje razveljavljena funkcija, če je ime funkcije enako v nadrejenem in podrejenem razredu, vendar je izvedba ali funkcionalnost funkcije v vsakem razredu različna. Poglejmo primer razveljavljene funkcije v razredu Animal. V spodnjem primeru imamo funkcijo prehranjevanja tudi v razredih živali in v njihovih otroških razredih (pes in mačka). Ime funkcije je v razredih enako, izvedba pa drugačna.

#creating nadrejeni razred
razred Žival:
def jesti (samo):
print ("Vse živali jedo hrano")
#creating object
animalObj = Animal ()
#calling function
animalObj.jesti ()
#creating dog class
razred pes (žival):
def jesti (samo):
print ("Pes jedo meso")
#creating object
dogObj = Dog ()
#calling function
dogObj.jesti ()
razred Mačka (žival):
def jesti (samo):
tisk ("Mačka je piškote in nekaj posebne hrane")
#creating object
catObj = Cat ()
#calling function
catObj.jesti ()

Izhod

Zaključek

Dedovanje je eden temeljnih konceptov objektno usmerjenih programskih jezikov. Z uporabo dedovanja ustvarimo podrejene razrede, ki podedujejo vse funkcije in lastnosti nadrejenega razreda. Dedovanje spodbuja ponovno uporabnost kode. Ta članek s primeri pojasnjuje dedovanje v Pythonu.

Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...
Kako spremeniti miškin kazalec in velikost, barvo in shemo kazalca v sistemu Windows 10
Kazalec miške in kazalec v operacijskem sistemu Windows 10 sta zelo pomembna vidika operacijskega sistema. To lahko rečemo tudi za druge operacijske s...
Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...