Krajta

Dědičnost Pythonu

Dědičnost Pythonu

Python je objektově orientovaný programovací jazyk. V objektově orientovaném programovacím jazyce vytváříme třídy a provádíme zamýšlenou funkčnost. Dědičnost je základní vlastností objektově orientovaných programovacích jazyků. Dědičnost lze definovat jako schopnost jedné třídy zdědit všechny funkce a vlastnosti jiné třídy. Dědičnost v zásadě umožňuje rozšířit vlastnosti existující třídy. Dědičnost je využívána dvěma hlavními koncepty:

  1. Nadřazená třída nebo základní třída
  2. Podřízená třída nebo odvozená třída

Nadřazená třída je třída, která umožňuje zdědit další třídy. Nazývá se také základní třída. Třída Child nebo odvozená třída je třída, která dědí všechny vlastnosti a funkce jiné třídy. Dědičnost podporuje několik výhod, tj.E., je to reprezentace fenoménu dědičnosti v reálném světě. Podporuje opětovné použití kódu. Pokud je funkce definována v jedné třídě, druhá třída může tuto třídu zdědit a používat všechny existující funkce. Pro provádění podobných úkolů není třeba znovu a znovu psát stejný kód. Dědičnost se používá na několika úrovních. Například pokud je třída B zděděna z A a třída C je zděděna z třídy B, pak má třída C všechny vlastnosti třídy B a také třídy A. Syntaxe dědičnosti je následující:

Třída ParentClass:
Podrobnosti implementace nadřazené třídy
třída ChildClass:
Podrobnosti implementace podřízené třídy

Ačkoli má podřízená třída přístup ke všem funkcím a funkcím nadřazené třídy, může přidávat také své nové funkce a funkce.

Tento článek popisuje a pokrývá všechny aspekty dědičnosti Pythonu.

Implementace dědičnosti v Pythonu

Dědičnost lze uplatnit v mnoha situacích. Předpokládejme, že budujete softwarový systém pro univerzitu. Může se skládat z několika zúčastněných stran, jako jsou studenti, učitelé, zaměstnanci atd. Každý člověk má tedy jméno, věk, e-mail a další společné vlastnosti. Není nutné deklarovat všechny vlastnosti v každé třídě zvlášť. Můžeme vytvořit třídu osob a všechny třídy zúčastněných stran mohou zdědit všechny společné vlastnosti a funkce z třídy osob. V tomto případě není nutné znovu a znovu psát společné vlastnosti v každé třídě. Podobně můžeme uvažovat o zvířecí třídě. Na tomto světě existují stovky druhů zvířat. Všechna zvířata jedí, spí a mají také některé druhy. Tento koncept lze také implementovat pomocí dědičnosti.

Uvažujme o zvířeti jako o super třídě a implementujme dědictví. V níže uvedeném příkladu jsme vytvořili jednu třídu zvířat. Třída zvířat je rodičovská třída. Kromě toho jsme vytvořili třídy Pes a Kočka, které zdědily vlastnosti a funkce třídy zvířat. Klíčové slovo pass se používá v podřízené třídě, když v podřízené třídě nemusíme implementovat žádné rozšířené funkce.

#vytvoření rodičovské třídy
třída Zvíře:
# inicializační funkce
#initilizace názvu zvířete a druhu specie
def __init __ (self, name, specie_type):
já.jméno = jméno
já.specie_type = specie_type
Funkce #a pro tisk názvu zvířete
def printname (self):
print ("Název zvířete je:", self.název)
Funkce #a pro tisk typu zvířecího druhu
def printspecie (self):
print ("Typ druhu je:", vlastní.specie_type)
# Vytvoření třídy psa jako dětské třídy třídy zvířat
třída pes (zvíře):
# žádné rozšíření ani úpravy
složit
# now dog class mají přístup ke všem funkcím a vlastnostem třídy zvířat
# vytvoření objektu třídy psa
dogObj = Pes („Pes“, „masožravec“)
pesObj.printname ()
pesObj.printspecie ()
# Vytvoření třídy koček jako dětské třídy třídy zvířat
třída Kočka (zvíře):
#inicializační funkce třídy koček
def __init __ (vlastní):
#volání a používání funkce inicializace třídy zvířat
Zvíře.__init __ (já, „kočka“, „masožravý savec“)
Třída #now cat má přístup ke všem funkcím a vlastnostem třídy zvířat
# vytvoření objektu třídy kočka
catObj = Cat ()
catObj.printname ()
catObj.printspecie ()

Výstup

The "Zvíře.__init __ (já, „kočka“, „masožravý savec“) “ call je inicializační funkce třídy Animal.

Funkce super ()

Python poskytuje vestavěnou funkci super (), která zdědí všechny vlastnosti a funkce nadřazené třídy. Když použijeme funkci super (), není třeba zmínit název nadřazené třídy, jako jsme to udělali "Zvíře.__init __ (já, „kočka“, „masožravý savec“) “ ale funkce super () automaticky ukazuje na nadřazenou třídu. Pojďme použít super funkci.

#vytvoření rodičovské třídy
třída Zvíře:
# inicializační funkce
#initilizace názvu zvířete a druhu specie
def __init __ (self, name, specie_type):
já.jméno = jméno
já.specie_type = specie_type
Funkce #a pro tisk názvu zvířete
def printname (self):
print ("Název zvířete je:", self.název)
Funkce #a pro tisk typu zvířecího druhu
def printspecie (self):
print ("Typ druhu je:", vlastní.specie_type)
# Vytvoření třídy psa jako dětské třídy třídy zvířat
třída pes (zvíře):
# pomocí funkce super ()
def __init __ (self, name, specie_type):
super ().__init __ (name, specie_type)
# now dog class mají přístup ke všem funkcím a vlastnostem třídy zvířat
#vytvoření objektu třídy psa
dogObj = Pes („Pes“, „masožravec“)
pesObj.printname ()
pesObj.printspecie ()
# Vytvoření třídy koček jako dětské třídy třídy zvířat
třída Kočka (zvíře):
#inicializační funkce třídy koček
# pomocí funkce super ()
def __init __ (self, name, specie_type):
super ().__init __ (name, specie_type)
Třída #now cat má přístup ke všem funkcím a vlastnostem třídy zvířat
# vytvoření objektu třídy kočka
catObj = kočka („kočka“, „masožravý savec“)
catObj.printname ()
catObj.printspecie ()

Výstup

Nyní přidejme některé další funkce do podřízených tříd. Každá třída dědí společné vlastnosti a funkce z nadřazené třídy, ale podřízená třída může mít nějakou třídu navíc, která je určena pro tuto konkrétní třídu. Nyní vytvořme některé další vlastnosti a funkce ve třídě psů a koček.

#vytvoření rodičovské třídy
třída Zvíře:
# inicializační funkce
#initilizace názvu zvířete a druhu specie
def __init __ (self, name, specie_type):
já.jméno = jméno
já.specie_type = specie_type
Funkce #a pro tisk názvu zvířete
def printname (self):
print ("Název zvířete je:", self.název)
Funkce #a pro tisk typu zvířecího druhu
def printspecie (self):
print ("Typ druhu je:", vlastní.specie_type)
# Vytvoření třídy psa jako dětské třídy třídy zvířat
třída pes (zvíře):
# pomocí funkce super ()
#pet name je nově přidaná funkce
def __init __ (self, name, specie_type, pet_name):
super ().__init __ (name, specie_type)
já.pet_name = pet_name
#vytvoření nové funkce
def printpetname (self):
print ("Jméno zvířete je:", self.jméno mazlíčka)
# now dog class mají přístup ke všem funkcím a vlastnostem třídy zvířat
# vytvoření objektu třídy psa
dogObj = Pes ("Pes", "masožravec", "Max")
pesObj.printname ()
pesObj.printspecie ()
pesObj.printpetname ()
# Vytvoření třídy koček jako dětské třídy třídy zvířat
třída Kočka (zvíře):
#inicializační funkce třídy koček
# pomocí funkce super ()
#adding food and pet_name properties
def __init __ (self, name, specie_type, food, pet_name):
super ().__init __ (name, specie_type)
já.jídlo = jídlo
já.pet_name = pet_name
# nová funkce pro přístup k informacím o jídle
def printfood (vlastní):
print ("Kočka má ráda:", já.jídlo)
# nová funkce pro jméno mazlíčka
def printpetname (self):
print ("Jméno zvířete je:", self.jméno mazlíčka)
Třída #now cat má přístup ke všem funkcím a vlastnostem třídy zvířat
# vytvoření objektu třídy kočka
catObj = kočka („kočka“, „masožravý savec“, „sušenka“, „sedmikráska“)
catObj.printname ()
catObj.printspecie ()

Výstup

Funkce mají přednost

Funkce přepsání je důležitý pojem v dědičnosti. Funkce se nazývá přepsaná funkce, pokud je název funkce stejný v nadřazených a podřízených třídách, ale implementace nebo funkčnost funkce se v každé třídě liší. Podívejme se na příklad přepsané funkce ve třídě Animal. V níže uvedeném příkladu máme funkci jíst ve třídách zvířat a také v jejich podřízených třídách (pes a kočka). Název funkce je ve třídách stejný, ale implementace se liší.

#vytvoření rodičovské třídy
třída Zvíře:
def jíst (já):
tisk ("Všechna zvířata jedí jídlo")
# vytvoření objektu
animalObj = Animal ()
funkce #calling
zvířeObj.jíst()
#tvoření třídy psů
třída pes (zvíře):
def jíst (já):
tisk ("Pes jí maso")
# vytvoření objektu
dogObj = Pes ()
funkce #calling
pesObj.jíst()
třída Kočka (zvíře):
def jíst (já):
tisk („Kočka jedí sušenky a speciální jídlo“)
# vytvoření objektu
catObj = Cat ()
funkce #calling
catObj.jíst()

Výstup

Závěr

Dědičnost je jedním ze základních konceptů objektově orientovaných programovacích jazyků. Použitím dědičnosti vytvoříme podřízené třídy, které zdědí všechny funkce a vlastnosti nadřazené třídy. Dědičnost podporuje opětovné použití kódu. Tento článek vysvětluje dědičnost v Pythonu pomocí příkladů.

Hry Porty komerčních her s otevřeným zdrojovým kódem
Porty komerčních her s otevřeným zdrojovým kódem
Zdarma, s otevřeným zdrojovým kódem a multiplatformní herní enginy lze hrát staré i některé z poměrně nedávných herních titulů. Tento článek uvede sez...
Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...