Python, známý svou jednoduchostí a všestranností, umožňuje vývojářům psát čistý a udržovatelný kód. Jednou z jeho výkonných funkcí je dědičnost, která umožňuje vytváření podtříd, které dědí vlastnosti a chování od nadřazených tříd. Subclassing umožňuje opětovné použití kódu, podporuje modularitu a usnadňuje rozšiřitelnost. V tomto článku se ponoříme do základů vytváření podtříd Pythonu a prozkoumáme různé aspekty na několika příkladech.
Co je podtřída Pythonu?
V Pythonu je podtřída třída, která dědí atributy a metody z jiné třídy, známé jako nadtřída nebo nadřazená třída. Když vytvoříte podtřídu, může znovu použít a rozšířit funkčnost nadtřídy. To vám umožní vytvářet specializované verze existujících tříd, aniž byste museli přepisovat běžné funkce. Chcete-li vytvořit a podtřída v Pythonu , definujete novou třídu a za názvem třídy uvedete nadtřídu v závorkách.
Syntax :
class SubclassName(BaseClassName):
# Atributy třídy a metody pro podtřídu
#…
Jak vytvořit podtřídu Pythonu?
Níže je uveden podrobný návod, jak vytvořit A Krajta Podtřída.
Příklad 1: Vytvoření jednoduché podtřídy
Animal>je základní třída s a__init__>způsob inicializacename>atribut a amake_sound>metoda (v tomto případě abstraktní, protože nemá konkrétní implementaci).Dog>je podtřídaAnimal>která z toho dědí. Přepíšemake_sound>způsob, jak zajistit specifickou implementaci pro psy.- Jsou vytvořeny instance obou tříd a demonstrujeme, jak lze přistupovat k atributům a metodám.
Python3
jsou to zpěváci
class> Animal:> >def> __init__(>self>, name):> >self>.name>=> name> >def> make_sound(>self>):> >pass> class> Dog(Animal):> >def> make_sound(>self>):> >return> 'Woof!'> # Creating instances> generic_animal>=> Animal(>'Generic Animal'>)> dog_instance>=> Dog(>'Buddy'>)> # Accessing attributes and methods> print>(generic_animal.name)># Output: Generic Animal> print>(dog_instance.name)># Output: Buddy> print>(dog_instance.make_sound())># Output: Woof!> |
>
počítač vynalezl který rok
>
Příklad 2: Přidání dalších atributů do podtřídy
Shape>je základní třída s an__init__>způsob inicializacecolor>atribut a abstraktarea>metoda.Circle>je podtřídouShape>který jej rozšiřuje přidáním aradius>atribut. Volá konstruktor nadtřídy usingsuper()>k inicializaci společného atributu.- The
area>metoda je přepsána vCircle>podtřída, která poskytuje specifickou implementaci pro výpočet plochy kruhu. - Jsou vytvořeny instance obou tříd a demonstrujeme, jak lze přistupovat k atributům a metodám.
Python3
srovnání s javou
class> Shape:> >def> __init__(>self>, color):> >self>.color>=> color> >def> area(>self>):> >pass> class> Circle(Shape):> >def> __init__(>self>, color, radius):> >super>().__init__(color)> >self>.radius>=> radius> >def> area(>self>):> >return> 3.14> *> self>.radius>*>*> 2> # Creating instances> generic_shape>=> Shape(>'Red'>)> circle_instance>=> Circle(>'Blue'>,>5>)> # Accessing attributes and methods> print>(generic_shape.color)> print>(circle_instance.color)> print>(circle_instance.radius)> print>(circle_instance.area())> |
>
>
Závěr
Na závěr, vytvoření podtřídy Pythonu zahrnuje definování nové třídy, která dědí atributy a metody z existující třídy, známé jako základní třída nebo nadtřída. Podtřídy mohou rozšířit nebo přepsat funkčnost základní třídy, což umožňuje opětovné použití kódu a přizpůsobení. Prostřednictvím použitísuper()>funkce, podtřídy mohou vyvolat konstruktor nadtřídy k inicializaci sdílených atributů.