Python

Pitona mantojums

Pitona mantojums

Python ir objektorientēta programmēšanas valoda. Objektorientētā programmēšanas valodā mēs izveidojam klases un veicam paredzēto funkcionalitāti. Mantošana ir objektorientēto programmēšanas valodu galvenā iezīme. Mantošanu var definēt kā vienas klases spēju pārmantot visas citas klases funkcijas un īpašības. Mantošana būtībā ļauj paplašināt esošās klases īpašības. Mantojums tiek piesaistīts diviem galvenajiem jēdzieniem:

  1. Vecāku klase vai bāzes klase
  2. Bērnu klase vai atvasināta klase

Vecāku klase ir klase, kas ļauj mantot citas klases. To sauc arī par bāzes klasi. Bērnu klase vai atvasinātā klase ir tā klase, kas pārņem visas citas klases īpašības un funkcijas. Mantošana veicina vairākas priekšrocības, t.i.e., tā ir reālās pasaules mantojuma parādība. Tas veicina koda atkārtotu izmantošanu. Ja funkcija ir definēta vienā klasē, otra klase var mantot šo klasi un izmantot visas esošās funkcijas. Lai veiktu līdzīgus uzdevumus, nav nepieciešams rakstīt to pašu kodu atkal un atkal. Mantojumu piemēro vairākos līmeņos. Piemēram, ja B klase tiek mantota no A un C klase tiek mantota no B klases, tad C klasei ir visas B klases īpašības, kā arī A klase. Mantojuma sintakse ir šāda:

Klases vecāku klase:
Vecāku klases ieviešanas informācija
klase ChildClass:
Informācija par bērnu klases ieviešanu

Kaut arī bērnu klasei ir pieejamas visas vecāku klases funkcijas un funkcijas, tā var pievienot arī savas jaunās iespējas un funkcijas.

Šajā rakstā ir aprakstīti un aprakstīti visi Python mantojuma aspekti.

Mantojuma ieviešana Python

Mantošanu var izmantot daudzās situācijās. Pieņemsim, ka jūs veidojat universitātes programmatūras sistēmu. To var veidot vairākas ieinteresētās personas, piemēram, studenti, skolotāji, darbinieki utt. Tātad katrai personai ir vārds, vecums, e-pasts un citas kopīgas īpašības. Nav nepieciešams deklarēt visus īpašumus katrā klasē atsevišķi. Mēs varam izveidot personu klasi, un visas ieinteresēto personu klases var mantot visas kopīgās īpašības un funkcijas no personu klases. Šajā gadījumā nav nepieciešams atkal un atkal rakstīt kopīgās īpašības katrā klasē. Līdzīgi mēs varam uzskatīt dzīvnieku klasi. Šajā pasaulē ir simtiem dzīvnieku veidu. Visi dzīvnieki ēd, guļ un viņiem ir arī dažas sugas. Šo koncepciju var īstenot arī, izmantojot mantojumu.

Uzskatīsim dzīvnieku par superklasi un īstenosim mantojumu. Zemāk dotajā piemērā mēs esam izveidojuši vienu dzīvnieku klasi. Dzīvnieku klase ir vecāku klase. Turklāt mēs esam izveidojuši suņu un kaķu klases, kas pārņem dzīvnieku klases īpašības un funkcijas. Pass kods tiek izmantots bērnu klasē, kad mums nav jāievieš nekāda paplašināta funkcionalitāte bērnu klasē.

# vecāku klases izveide
klases dzīvnieks:
#inicializācijas funkcija
#initilization dzīvnieka nosaukums un sugas tips
def __init __ (pats, vārds, sugas tips):
pats.nosaukums = nosaukums
pats.specie_type = specie_type
#a funkcija, lai izdrukātu dzīvnieka vārdu
def drukas nosaukums (pats):
drukāt ("Dzīvnieka nosaukums ir:", pats.nosaukums)
#a funkcija, lai izdrukātu dzīvnieku sugas tipu
def printspecie (pats):
drukāt ("Sugas tips ir:", pats.specie_type)
# suņu klases izveidošana kā dzīvnieku klases bērnu klase
klases suns (dzīvnieks):
# nav paplašinājumu vai modifikāciju
iziet
# tagad suņu klasei ir pieejamas visas dzīvnieku klases funkcijas un īpašības
# suņu klases objekta izveide
dogObj = Suns ("Suns", "plēsējs")
suns Obj.drukas nosaukums ()
suns Obj.printspecie ()
# kaķu klases izveidošana kā dzīvnieku klases bērnu klase
klases kaķis (dzīvnieks):
# kaķu klases iniciēšanas funkcija
def __init __ (pats):
# zvana un izmanto dzīvnieku klases iniciēšanas funkciju
Dzīvnieks.__init __ (pats, "kaķis", "gaļēdājs zīdītājs")
# tagad kaķu klasei ir pieejamas visas dzīvnieku klases funkcijas un īpašības
# kaķu klases objekta izveide
catObj = Kaķis ()
catObj.drukas nosaukums ()
catObj.printspecie ()

Rezultāts

The “Dzīvnieks.__init __ (pats, kaķis, gaļēdājs zīdītājs) zvana ir dzīvnieku klases inicializācijas funkcija.

Funkcija super ()

Python nodrošina iebūvētu funkciju super (), lai mantotu visas vecāku klases īpašības un funkcijas. Kad mēs izmantojam funkciju super (), tad nav jāmin vecāku klases nosaukums, kā mēs to darījām “Dzīvnieks.__init __ (pats, kaķis, gaļēdājs zīdītājs) bet funkcija super () automātiski norāda uz vecāku klasi. Izmantosim super funkciju.

# vecāku klases izveide
klases dzīvnieks:
#inicializācijas funkcija
#initilization dzīvnieka nosaukums un sugas tips
def __init __ (pats, vārds, sugas tips):
pats.nosaukums = nosaukums
pats.specie_type = specie_type
#a funkcija, lai izdrukātu dzīvnieka vārdu
def drukas nosaukums (pats):
drukāt ("Dzīvnieka nosaukums ir:", pats.nosaukums)
#a funkcija, lai izdrukātu dzīvnieku sugas tipu
def printspecie (pats):
drukāt ("Sugas tips ir:", pats.specie_type)
# suņu klases izveidošana kā dzīvnieku klases bērnu klase
klases suns (dzīvnieks):
# izmantojot funkciju super ()
def __init __ (pats, vārds, sugas tips):
super ().__init __ (vārds, sugas tips)
# tagad suņu klasei ir pieejamas visas dzīvnieku klases funkcijas un īpašības
# suņu klases objekta izveide
dogObj = Suns ("Suns", "plēsējs")
sunsObj.drukas nosaukums ()
sunsObj.printspecie ()
# kaķu klases izveidošana kā dzīvnieku klases bērnu klase
klases kaķis (dzīvnieks):
# kaķu klases iniciēšanas funkcija
# izmantojot super () funkciju
def __init __ (pats, vārds, sugas tips):
super ().__init __ (vārds, sugas tips)
# tagad kaķu klasē ir pieejamas visas dzīvnieku klases funkcijas un īpašības
# kaķu klases objekta izveide
catObj = Kaķis ("kaķis", "gaļēdājs zīdītājs")
catObj.drukas nosaukums ()
catObj.printspecie ()

Rezultāts

Tagad pievienosim vēl dažas funkcijas bērnu klasēs. Katra klase pārņem kopīgās īpašības un funkcijas no vecāku klases, taču bērnu klasē var būt kāda papildu klase, kas paredzēta tieši šai klasei. Tagad izveidosim dažas papildu īpašības un funkcijas suņu un kaķu klasē.

# vecāku klases izveide
klases dzīvnieks:
#inicializācijas funkcija
#initilization dzīvnieka nosaukums un sugas tips
def __init __ (pats, vārds, sugas tips):
pats.nosaukums = nosaukums
pats.specie_type = specie_type
#a funkcija, lai izdrukātu dzīvnieka vārdu
def drukas nosaukums (pats):
drukāt ("Dzīvnieka nosaukums ir:", pats.nosaukums)
#a funkcija, lai izdrukātu dzīvnieku sugas tipu
def printspecie (pats):
drukāt ("Sugas tips ir:", pats.specie_type)
# suņu klases izveide kā dzīvnieku klases bērnu klase
klases suns (dzīvnieks):
# izmantojot super () funkciju
#pet nosaukums ir nesen pievienotā funkcionalitāte
def __init __ (sevis, vārds, sugas tips, mājdzīvnieka vārds):
super ().__init __ (vārds, sugas tips)
pats.pet_name = pet_name
# jaunas funkcijas izveide
def printpetname (pats):
drukāt ("Mājdzīvnieka vārds ir:", pats.mājdzīvnieka vārds)
# tagad suņu klasei ir pieejamas visas dzīvnieku klases funkcijas un īpašības
# suņu klases objekta izveide
dogObj = Suns ("Suns", "plēsējs", "Makss")
suns Obj.drukas nosaukums ()
sunsObj.printspecie ()
suns Obj.drukas nosaukums ()
# kaķu klases izveidošana kā dzīvnieku klases bērnu klase
klases kaķis (dzīvnieks):
# kaķu klases iniciēšanas funkcija
# izmantojot super () funkciju
#papildu un pet_name īpašību pievienošana
def __init __ (sevis, vārds, sugas tips, pārtika, mājdzīvnieka vārds):
super ().__init __ (vārds, sugas tips)
pats.ēdiens = ēdiens
pats.pet_name = pet_name
# new funkcija, lai piekļūtu pārtikas informācijai
def printfood (pats):
drukāt ("Kaķim patīk:", pats.ēdiens)
# new funkcija lolojumdzīvnieku vārdam
def printpetname (pats):
drukāt ("Mājdzīvnieka vārds ir:", pats.mājdzīvnieka vārds)
# tagad kaķu klasē ir pieejamas visas dzīvnieku klases funkcijas un īpašības
# kaķu klases objekta izveide
catObj = Kaķis ("kaķis", "gaļēdājs zīdītājs", "Biskvīts", "Margrietiņa")
catObj.drukas nosaukums ()
catObj.printspecie ()

Rezultāts

Galvenās funkcijas

Svarīgākā mantojuma jēdziens ir svarīgākā funkcija. Funkciju sauc par ignorētu funkciju, ja vecāku un bērnu klasēs funkcijas nosaukums ir vienāds, bet funkcijas ieviešana vai funkcionalitāte katrā klasē ir atšķirīga. Apskatīsim dzīvnieku klasē ignorēto funkciju piemēru. Zemāk dotajā piemērā mums ir ēšanas funkcija arī dzīvnieku klasēs un bērnu klasēs (suns un kaķis). Funkcijas nosaukums klasēs ir vienāds, bet ieviešana ir atšķirīga.

# vecāku klases izveide
klases dzīvnieks:
def ēst (pats):
drukāt ("Visi dzīvnieki ēd pārtiku")
#rada objektu
animalObj = Dzīvnieks ()
# zvana funkcija
dzīvnieksObj.ēst ()
# suņu klases radīšana
klases suns (dzīvnieks):
def ēst (pats):
drukāt ("Suns ēd gaļu")
#rada objektu
dogObj = Suns ()
# zvana funkcija
sunsObj.ēst ()
klases kaķis (dzīvnieks):
def ēst (pats):
drukāt ("Kaķis ēd cepumus un kādu īpašu ēdienu")
#rada objektu
catObj = Kaķis ()
# zvana funkcija
catObj.ēst ()

Rezultāts

Secinājums

Mantošana ir viens no objektorientēto programmēšanas valodu pamatjēdzieniem. Izmantojot mantojumu, mēs izveidojam bērnu klases, kurās tiek mantotas visas vecāku klases funkcijas un īpašības. Mantošana veicina koda atkārtotu lietošanu. Šis raksts izskaidro mantošanu Python ar piemēriem.

Vulkan Linux lietotājiem
Ar katru jauno grafisko karšu paaudzi mēs redzam, kā spēļu izstrādātāji pārspēj grafiskās uzticamības robežas un tuvojas fotoreālismam. Neskatoties uz...
OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...