„Python“

„Python“ paveldėjimas

„Python“ paveldėjimas

„Python“ yra į objektą orientuota programavimo kalba. Objektine programavimo kalba mes kuriame klases ir atliekame numatytą funkcionalumą. Paveldėjimas yra pagrindinis objektyvių programavimo kalbų bruožas. Paveldėjimą galima apibrėžti kaip vienos klasės sugebėjimą paveldėti visas kitos klasės funkcijas ir savybes. Paveldėjimas iš esmės leidžia išplėsti esamos klasės savybes. Paveldėjimas naudojamas dviem pagrindinėmis sąvokomis:

  1. Tėvų klasė arba pagrindinė klasė
  2. Vaiko klasė arba išvestinė klasė

Tėvų klasė yra klasė, leidžianti paveldėti kitas klases. Jis taip pat vadinamas bazine klase. Vaiko klasė arba išvestinė klasė yra ta klasė, kuri paveldi visas kitos klasės savybes ir funkcijas. Paveldėjimas skatina keletą privalumų, t.e., tai realaus pasaulio paveldėjimo reiškinio vaizdavimas. Tai skatina pakartotinį kodo naudojimą. Jei funkcija apibrėžta vienoje klasėje, kita klasė gali paveldėti šią klasę ir naudoti visas esamas funkcijas. Norint atlikti panašias užduotis, nereikia to paties kodo rašyti vėl ir vėl. Paveldėjimas taikomas keliais lygiais. Pavyzdžiui, jei B klasė paveldima iš A, o C klasė - iš B klasės, tai C klasė turi visas B klasės savybes ir A klasę. Paveldėjimo sintaksė yra tokia:

Klasė Tėvų klasė:
Informacija apie tėvų klasės įgyvendinimą
klasės „ChildClass“:
Informacija apie vaikų klasės įgyvendinimą

Nors vaikų klasė turi prieigą prie visų tėvų klasės ypatybių ir funkcijų, tačiau ji taip pat gali pridėti savo naujų funkcijų ir funkcijų.

Šiame straipsnyje aprašomi ir aprašomi visi „Python“ paveldėjimo aspektai.

Paveldėjimo įgyvendinimas „Python“

Paveldėjimas gali būti taikomas daugybėje situacijų. Tarkime, kad kuriate programinės įrangos sistemą universitetui. Jį gali sudaryti keli suinteresuoti subjektai, tokie kaip studentai, mokytojai, darbuotojai ir kt. Taigi kiekvienas asmuo turi vardą, amžių, el. Pašto adresą ir kitas įprastas savybes. Nebūtina deklaruoti visų kiekvienos klasės savybių atskirai. Mes galime sukurti asmens klasę, o visos suinteresuotųjų šalių klasės gali paveldėti visas bendrąsias savybes ir funkcijas iš asmens klasės. Tokiu atveju nereikia vėl ir vėl rašyti bendrų kiekvienos klasės savybių. Panašiai galime laikyti gyvūnų klasę. Šiame pasaulyje yra šimtai gyvūnų rūšių. Visi gyvūnai valgo, miega ir turi keletą rūšių. Ši koncepcija taip pat gali būti įgyvendinta naudojant paveldėjimą.

Laikykime gyvūną kaip super klasę ir įgyvendinkime paveldėjimą. Žemiau pateiktame pavyzdyje sukūrėme vieną gyvūnų klasę. Gyvūnų klasė yra tėvų klasė. Be to, mes sukūrėme šunų ir kačių klases, kurios paveldi gyvūnų klasės savybes ir funkcijas. „Pass“ raktinis žodis naudojamas vaikų klasėje, kai mes neturime įdiegti jokių išplėstinių funkcijų vaikų klasėje.

# tėvų klasės kūrimas
klasės gyvūnas:
# inicializavimo funkcija
#initilization gyvūno pavadinimas ir rūšies tipas
def __init __ (savastis, vardas, rūšies_tipas):
savarankiškai.vardas = vardas
savarankiškai.specie_type = specie_type
#a funkcija atspausdinti gyvūno pavadinimą
def spausdinimo vardas (self):
spausdinti ("Gyvūno vardas yra:", sav.vardas)
#a funkcija spausdinti gyvūnų rūšies rūšį
def spausdinimo rūšis (savarankiškai):
spausdinti ("Rūšių tipas yra:", sav.specie_type)
# sukurti šunų klasę kaip vaikų klasės vaikų klasę
klasės šuo (gyvūnas):
# nėra išplėtimo ar modifikavimo
praeiti
#now šunų klasė gali naudotis visomis gyvūnų klasės funkcijomis ir savybėmis
# šuns klasės objekto sukūrimas
dogObj = Šuo ("Šuo", "mėsėdis")
šuoObj.spausdinimo vardas ()
šuoObj.spausdinimo rūšis ()
# sukurti kačių klasę kaip vaikų klasės vaikų klasę
klasės katė (gyvūnas):
# kačių klasės inicijavimo funkcija
def __init __ (savęs):
# skambinti ir naudoti gyvūnų klasės inicijavimo funkciją
Gyvūnas.__init __ (savęs, „katės“, „mėsėdžio žinduolio“)
#now kačių klasė gali naudotis visomis gyvūnų klasės funkcijomis ir savybėmis
#kate klasės objekto sukūrimas
catObj = Katė ()
catObj.spausdinimo vardas ()
catObj.spausdinimo rūšis ()

Rezultatas

The "Gyvūnas.__init __ (savęs, „katės“, „mėsėdžio žinduolio“) “ skambutis inicijuoja gyvūnų klasės funkciją.

Super () funkcija

„Python“ suteikia įmontuotą super () funkciją, kad paveldėtų visas tėvų klasės ypatybes ir funkcijas. Kai naudojame super () funkciją, tada nereikia minėti tėvų klasės pavadinimo, kaip tai darėme "Gyvūnas.__init __ (savęs, „katės“, „mėsėdžio žinduolio“) “ bet funkcija super () automatiškai nurodo tėvų klasę. Panaudokime super funkciją.

# tėvų klasės kūrimas
klasės gyvūnas:
# inicializavimo funkcija
#initilization gyvūno pavadinimas ir rūšies tipas
def __init __ (savastis, vardas, rūšies_tipas):
savarankiškai.vardas = vardas
savarankiškai.specie_type = specie_type
#a funkcija atspausdinti gyvūno pavadinimą
def spausdinimo vardas (self):
spausdinti ("Gyvūno vardas yra:", sav.vardas)
#a funkcija spausdinti gyvūnų rūšies rūšį
def spausdinimo rūšis (savarankiškai):
spausdinti ("Rūšių tipas yra:", sav.specie_type)
# sukurti šunų klasę kaip vaikų klasės vaikų klasę
klasės šuo (gyvūnas):
#naudojant super () funkciją
def __init __ (savastis, vardas, rūšies_tipas):
super ().__init __ (vardas, rūšies_ tipas)
#now šunų klasė gali naudotis visomis gyvūnų klasės funkcijomis ir savybėmis
# šuns klasės objekto sukūrimas
dogObj = Šuo ("Šuo", "mėsėdis")
šuoObj.spausdinimo vardas ()
šuoObj.spausdinimo rūšis ()
# sukurti kačių klasę kaip vaikų klasės vaikų klasę
klasės katė (gyvūnas):
# kačių klasės inicijavimo funkcija
#naudojant super () funkciją
def __init __ (savastis, vardas, rūšies_tipas):
super ().__init __ (vardas, rūšies_ tipas)
#now kačių klasė gali naudotis visomis gyvūnų klasės funkcijomis ir savybėmis
#kate klasės objekto sukūrimas
catObj = Katė („katė“, „mėsėdis žinduolis“)
catObj.spausdinimo vardas ()
catObj.spausdinimo rūšis ()

Rezultatas

Dabar pridėkime dar keletą funkcijų vaikų klasėse. Kiekviena klasė iš tėvų klasės paveldi bendras savybes ir funkcijas, tačiau vaikų klasė gali turėti papildomą klasę, skirtą būtent šiai klasei. Dabar sukurkime keletą papildomų savybių ir funkcijų šunų ir kačių klasėje.

# tėvų klasės kūrimas
klasės gyvūnas:
# inicializavimo funkcija
#initilization gyvūno pavadinimas ir rūšies tipas
def __init __ (savastis, vardas, rūšies_tipas):
savarankiškai.vardas = vardas
savarankiškai.specie_type = specie_type
#a funkcija atspausdinti gyvūno pavadinimą
def spausdinimo vardas (self):
spausdinti ("Gyvūno vardas yra:", sav.vardas)
#a funkcija spausdinti gyvūnų rūšies tipą
def spausdinimo rūšis (savarankiškai):
spausdinti ("Rūšių tipas yra:", sav.specie_type)
# sukurti šunų klasę kaip vaikų klasės vaikų klasę
klasės šuo (gyvūnas):
#naudojant super () funkciją
#pet vardas yra naujai pridėta funkcija
def __init __ (savęs, vardo, rūšies_tipo, augintinio_vardas):
super ().__init __ (vardas, rūšies_ tipas)
savarankiškai.augintinio_vardas = augintinio_vardas
# naujos funkcijos sukūrimas
def printpetname (savarankiškai):
spausdinti ("Augintinio vardas yra:", sav.augintinio vardas)
#now šunų klasė gali naudotis visomis gyvūnų klasės funkcijomis ir savybėmis
# šuns klasės objekto sukūrimas
dogObj = Šuo („Šuo“, „mėsėdis“, „Maksas“)
šuoObj.spausdinimo vardas ()
šuoObj.spausdinimo rūšis ()
šuoObj.spausdinimo vardas ()
# sukurti kačių klasę kaip vaikų klasės vaikų klasę
klasės katė (gyvūnas):
# kačių klasės inicijavimo funkcija
#naudojant super () funkciją
# maisto ir augintinio vardo savybių pridėjimas
def __init __ (savęs, vardo, rūšies_tipo, maisto, augintinio_vardas):
super ().__init __ (vardas, rūšies_ tipas)
savarankiškai.maistas = maistas
savarankiškai.augintinio_vardas = augintinio_vardas
#new funkcija norint pasiekti informaciją apie maistą
def printfood (savarankiškai):
spausdinti ("Katė mėgsta:", sav.maistas)
#new funkcija augintinio vardui
def printpetname (savarankiškai):
spausdinti ("Augintinio vardas yra:", sav.augintinio vardas)
#now kačių klasė gali naudotis visomis gyvūnų klasės funkcijomis ir savybėmis
#kate klasės objekto sukūrimas
catObj = Katė („katė“, „mėsėdis žinduolis“, „sausainis“, „ramunė“)
catObj.spausdinimo vardas ()
catObj.spausdinimo rūšis ()

Rezultatas

Svarbiausios funkcijos

Svarbi paveldėjimo sąvoka yra svarbiausia funkcija. Funkcija vadinama nepaisoma funkcija, jei funkcijos pavadinimas yra vienodas tėvų ir vaikų klasėse, tačiau kiekvienos klasės funkcijos įgyvendinimas ar funkcionalumas yra skirtingas. Pažiūrėkime nepaisomų funkcijų pavyzdį gyvūnų klasėje. Toliau pateiktame pavyzdyje mes taip pat turime valgymo funkciją gyvūnų klasėse ir jų vaikų klasėse (šunų ir kačių). Funkcijos pavadinimas klasėse yra tas pats, tačiau įgyvendinimas skiriasi.

# tėvų klasės kūrimas
klasės gyvūnas:
def valgyti (save):
spausdinti („Visi gyvūnai ėda maistą“)
#kūrimo objektas
animalObj = Gyvūnas ()
# skambinimo funkcija
gyvūnasObj.valgyti ()
#sukurti šunų klasę
klasės šuo (gyvūnas):
def valgyti (save):
spausdinti ("Šuo valgo mėsą")
#kūrimo objektas
dogObj = Šuo ()
# skambinimo funkcija
šuoObj.valgyti ()
klasės katė (gyvūnas):
def valgyti (save):
spausdinti ("Katė valgo sausainius ir specialų maistą")
#kūrimo objektas
catObj = Katė ()
# skambinimo funkcija
catObj.valgyti ()

Rezultatas

Išvada

Paveldėjimas yra viena iš pagrindinių į objektą orientuotų programavimo kalbų sąvokų. Naudodami paveldėjimą, mes kuriame vaikų klases, kurios paveldi visas tėvų klasės funkcijas ir savybes. Paveldėjimas skatina kodo pakartotinį naudojimą. Šiame straipsnyje „Python“ paveldėjimas paaiškinamas pavyzdžiais.

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...