Python

Pythoni pärand

Pythoni pärand

Python on objektorienteeritud programmeerimiskeel. Objektorienteeritud programmeerimiskeeles loome klassid ja täidame kavandatud funktsionaalsust. Pärand on objektorienteeritud programmeerimiskeelte põhiomadus. Pärandit saab määratleda kui ühe klassi võimet pärida teise klassi kõik funktsioonid ja omadused. Pärimine võimaldab sisuliselt laiendada olemasoleva klassi omadusi. Pärand on võimendatud kahe peamise mõistega:

  1. Vanemklass või põhiklass
  2. Lapseklass või tuletatud klass

Vanemklass on klass, mis võimaldab teistelt klassidelt pärida. Seda nimetatakse ka põhiklassiks. Lapseklass ehk tuletatud klass on see klass, mis pärib kõik teise klassi omadused ja funktsioonid. Pärimine soodustab mitmeid eeliseid, s.t.e., see kujutab endast pärismaailma pärimise nähtust. See soodustab koodi korduvkasutamist. Kui funktsioon on määratletud ühes klassis, saab teine ​​klass selle klassi pärida ja kasutada kõiki olemasolevaid funktsioone. Sarnaste ülesannete täitmiseks pole vaja sama koodi uuesti ja uuesti kirjutada. Pärandit rakendatakse mitmel tasandil. Näiteks kui klass B on päritud A-lt ja klass C päritakse B-klassilt, siis C-klassil on kõik B-klassi omadused ja samuti A-klass. Pärimise süntaks on järgmine:

Klass ParentClass:
Vanemklassi rakendamise üksikasjad
klass ChildClass:
Lapseklassi rakendamise üksikasjad

Kuigi lasteklassil on juurdepääs kõigile vanemaklassi funktsioonidele ja funktsioonidele, saab ta siiski lisada ka oma uued funktsioonid ja funktsioonid.

Selles artiklis kirjeldatakse ja käsitletakse kõiki Pythoni pärimise aspekte.

Pärandi rakendamine Pythonis

Pärandit saab rakendada paljudes olukordades. Oletame, et ehitate ülikooli jaoks tarkvarasüsteemi. See võib koosneda mitmest sidusrühmast, nagu õpilased, õpetajad, töötajad jne. Nii et igal inimesel on nimi, vanus, e-posti aadress ja muud tavalised omadused. Kõiki klassi omadusi pole vaja eraldi deklareerida. Me saame teha inimeseklassi ja kõik sidusrühmade klassid võivad pärida inimeseklassilt kõik ühised omadused ja funktsioonid. Sellisel juhul pole vaja igas klassis ühiseid omadusi uuesti ja uuesti kirjutada. Samamoodi võime kaaluda loomaklassi. Selles maailmas on sadu loomaliike. Kõik loomad söövad, magavad ja neil on ka mõned liigid. Seda kontseptsiooni saab rakendada ka pärimise abil.

Vaatleme looma superklassina ja rakendame pärandi. Allpool toodud näites oleme loonud ühe loomaklassi. Loomaklass on vanemklass. Lisaks oleme loonud koerte ja kasside klassid, mis pärivad loomaklassi omadused ja funktsioonid. Pass-märksõna kasutatakse lasteklassis, kui me ei pea lapseklassis laiendatud funktsioone rakendama.

# vanemateklassi loomine
klassi loom:
# initsialiseerimise funktsioon
#initilization looma nimi ja liigi tüüp
def __init __ (ise, nimi, liigitüüp):
ise.nimi = nimi
ise.specie_type = eriliigi tüüp
#a funktsioon looma nime printimiseks
def printname (ise):
trükk ("Looma nimi on:", ise.nimi)
#a funktsioon loomaliigi tüübi printimiseks
def printspecie (ise):
print ("Liigi tüüp on:", ise.specie_type)
#koerteklassi loomaklassi lasteklassina loomine
klassi koer (loom):
# laiendust ega muudatust pole
üle andma
# nüüd koeraklassil on juurdepääs kõigile loomaklassi funktsioonidele ja omadustele
#koeraklassi objekti loomine
dogObj = koer ("koer", "kiskja")
koerObj.Prindi nimi()
koerObj.printspecie ()
#kassiklassi loomine loomaklassi lasteklassina
klassi kass (loom):
# kassiklassi initsialiseerimise funktsioon
def __init __ (ise):
# loomaklassi algatamise funktsiooni kutsumine ja kasutamine
Loom.__init __ (ise, "kass", "lihasööja imetaja")
# nüüd kassiklassil on juurdepääs kõikidele loomaklassi funktsioonidele ja omadustele
#kassiklassi objekti loomine
catObj = kass ()
catObj.Prindi nimi()
catObj.printspecie ()

Väljund

The "Loom.__init __ (ise, “kass”, “lihasööja imetaja”) ” kõne on loomaklassi initsialiseerimise funktsioon.

Funktsioon super ()

Python pakub sisseehitatud funktsiooni super (), et pärida kõik vanema klassi omadused ja funktsioonid. Kui kasutame funktsiooni super (), pole vaja nimetada vanemaklassi nime, nagu me seda tegime "Loom.__init __ (ise, “kass”, “lihasööja imetaja”) ” kuid funktsioon super () osutab automaatselt vanemklassile. Kasutame superfunktsiooni.

# vanemateklassi loomine
klassi loom:
# initsialiseerimise funktsioon
#initilization looma nimi ja liigi tüüp
def __init __ (ise, nimi, liigitüüp):
ise.nimi = nimi
ise.specie_type = eriliigi tüüp
#a funktsioon looma nime printimiseks
def printname (ise):
print ("Looma nimi on:", ise.nimi)
#a funktsioon loomaliigi tüübi printimiseks
def printspecie (ise):
print ("Liigi tüüp on:", ise.specie_type)
#koerteklassi loomaklassi lasteklassina loomine
klassi koer (loom):
#funktsiooni super () kasutamine
def __init __ (ise, nimi, liigitüüp):
Super().__init __ (nimi, liigi tüüp)
# nüüd koeraklassil on juurdepääs kõigile loomaklassi funktsioonidele ja omadustele
#koeraklassi objekti loomine
dogObj = koer ("koer", "kiskja")
koerObj.Prindi nimi()
koerObj.printspecie ()
#kassiklassi loomine loomaklassi lasteklassina
klassi kass (loom):
# kassiklassi initsialiseerimise funktsioon
#funktsiooni super () kasutamine
def __init __ (ise, nimi, liigitüüp):
Super().__init __ (nimi, liigi tüüp)
# nüüd kassiklassil on juurdepääs kõikidele loomaklassi funktsioonidele ja omadustele
#kassiklassi objekti loomine
catObj = Kass ("kass", "lihasööja imetaja")
catObj.Prindi nimi()
catObj.printspecie ()

Väljund

Lisame nüüd veel mõned funktsioonid lasteklassidesse. Iga klass pärib vanemklassilt ühised omadused ja funktsioonid, kuid lasteklassis võib olla mõni lisaklass, mis on mõeldud just sellele klassile. Nüüd loome mõned täiendavad omadused ja funktsioonid koerte ja kasside klassis.

# vanemateklassi loomine
klassi loom:
# initsialiseerimise funktsioon
#initilization looma nimi ja liigi tüüp
def __init __ (ise, nimi, liigitüüp):
ise.nimi = nimi
ise.specie_type = eriliigi tüüp
#a funktsioon looma nime printimiseks
def printname (ise):
print ("Looma nimi on:", ise.nimi)
#a funktsioon loomaliigi tüübi printimiseks
def printspecie (ise):
print ("Liigi tüüp on:", ise.specie_type)
#koerteklassi loomaklassi lasteklassina loomine
klassi koer (loom):
#funktsiooni super () kasutamine
#pet nimi on äsja lisatud funktsioon
def __init __ (ise, nimi, liigitüüp, lemmiklooma nimi):
Super().__init __ (nimi, liigi tüüp)
ise.lemmiklooma_nimi = lemmiklooma_nimi
# uue funktsiooni loomine
def printpetname (ise):
print ("Lemmiklooma nimi on:", ise.kodulooma nimi)
# nüüd koeraklassil on juurdepääs kõigile loomaklassi funktsioonidele ja omadustele
#koeraklassi objekti loomine
dogObj = Koer ("koer", "kiskja", "max")
koerObj.Prindi nimi()
koerObj.printspecie ()
koerObj.printpetname ()
#kassiklassi loomine loomaklassi lasteklassina
klassi kass (loom):
# kassiklassi initsialiseerimise funktsioon
#funktsiooni super () kasutamine
#Toidu ja lemmiklooma_omaduste lisamine
def __init __ (ise, nimi, liigi tüüp, toit, lemmiklooma nimi):
Super().__init __ (nimi, liigi tüüp)
ise.toit = ​​toit
ise.lemmiklooma_nimi = lemmiklooma_nimi
Toiduteabele juurdepääsemiseks funktsioon # uus
def printfood (ise):
print ("Kassile meeldib:", ise.toit)
lemmiklooma nime uus funktsioon
def printpetname (ise):
print ("Lemmiklooma nimi on:", ise.kodulooma nimi)
# nüüd kassiklassil on juurdepääs kõikidele loomaklassi funktsioonidele ja omadustele
#kassiklassi objekti loomine
catObj = Kass ("kass", "lihasööja imetaja", "Biscuit", "Daisy")
catObj.Prindi nimi()
catObj.printspecie ()

Väljund

Ülimuslikud funktsioonid

Pärandamisel on oluline mõiste ülekaalukas funktsioon. Funktsiooni nimetatakse tühistatud funktsiooniks, kui funktsiooni nimi on vanema ja lapse klassides sama, kuid funktsiooni rakendamine või funktsionaalsus on igas klassis erinev. Vaatame loomade klassi alistunud funktsiooni näidet. Allpool toodud näites on meil söömisfunktsioon ka loomaklassides ja selle lasteklassides (koer ja kass). Funktsiooni nimi on klassides sama, kuid rakendus on erinev.

# vanemateklassi loomine
klassi loom:
def sööma (ise):
print ("Kõik loomad söövad toitu")
#objekti loomine
animalObj = loom ()
# helistamisfunktsioon
loomObj.sööma()
#koerte klassi loomine
klassi koer (loom):
def sööma (ise):
print ("Koer sööb liha")
#objekti loomine
dogObj = koer ()
#kõnefunktsioon
koerObj.sööma()
klassi kass (loom):
def sööma (ise):
print ("Kass sööb küpsiseid ja eritoitu")
#objekti loomine
catObj = kass ()
# helistamisfunktsioon
catObj.sööma()

Väljund

Järeldus

Pärand on üks objektorienteeritud programmeerimiskeele põhimõisteid. Pärimise abil loome lasteklassid, mis pärivad kõik vanemklassi funktsioonid ja omadused. Pärand soodustab koodi taaskasutatavust. Selles artiklis selgitatakse Pythoni pärandit näidetega.

Kuidas muuta hiire vasakut ja paremat nuppu Windows 10 PC-s
On üsna tavaline, et kõik arvutihiirte seadmed on ergonoomiliselt mõeldud parempoolsete kasutajate jaoks. Kuid on olemas hiire seadmeid, mis on spetsi...
Jäljendage hiireklikke, hõljutades hiirega klõpsutut hiirt Windows 10-s
Hiire või klaviatuuri kasutamine liigses kasutamises vales asendis võib põhjustada palju terviseprobleeme, sealhulgas tüve, karpaalkanali sündroom ja ...
Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...