Článek pomůže čtenáři pochopit základní třídy Pythonu spolu s některými základními aplikacemi v reálném světě. Jako náš editor kódu budeme používat Visual Studio Code. Pokud jste si Visual Studio Code ještě nenainstalovali, pokyny jsou uvedeny v prvním blogu.
Třídy a objekty v Pythonu – obsah:
- Třídy Pythonu
- Třídy Pythonu – definice
- Inicializace tříd Pythonu
- Napišme naši první třídu Pythonu
- Atributy
- Chování třídy
- Objekty v Pythonu
- Dědičnost
Třídy Pythonu
Jak jsme diskutovali v prvním blogu, Python je objektově orientovaný programovací jazyk. Existují tři fráze, které jsou velmi důležité při diskusi o objektově orientovaném programování v Pythonu. První je třída, druhá je objekt, třetí je dědičnost. Začněme tím, co je třída.
Třídy Pythonu – definice
Třída je plán nebo rozšiřitelný program, který pomáhá při vytváření objektů. Třída se skládá z chování a stavu. Chování třídy je demonstrováno prostřednictvím funkcí uvnitř třídy, které se nazývají metody. Stav třídy je demonstrován pomocí proměnných uvnitř třídy, které se nazývají atributy.
Inicializace tříd Pythonu
Třída může být inicializována pomocí následující syntaxe.
Třída v Pythonu je definována pomocí klíčového slova “class” následovaného názvem třídy. Základní syntaxe funkce Pythonu je ilustrována níže.
Například:
<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" /> # Vytvořte funkci # třída Monkey class classname:
Poznámka: název třídy má také stejná pravidla jako deklarace proměnné.
Napišme naši první třídu Pythonu
# první třída class Animals: pass
V uvedeném bloku kódu jsme napsali třídu, kterou budeme dále rozvíjet v blogu. Jak vidíte, použili jsme klíčové slovo “class”.
Teď se podívejme, jak přidat komponenty do třídy zvířat. Ale předtím se naučme o konstruktoru “__init__()”. Konstruktor se používá pro instanciaci objektu. Zde se __init__() používá pro instanciaci objektu. Konstruktor může být výchozí s pouze self jako argument nebo parametrizovaný s požadovanými argumenty.
Atributy
Existují dva různé typy atributů, první jsou proměnné třídy a druhé jsou instance proměnné. Proměnné třídy jsou proměnné, které vlastní třída. Tyto proměnné jsou také dostupné pro všechny instance třídy. Proto se jejich hodnota nezmění, i když se instance změní.
# proměnné třídy class Animals: type=”mammals”
Instance proměnné jsou proměnné, které patří samotným instancím. Proto se jejich hodnota změní, jakmile se instance změní.
# proměnné třídy class Animals: def __init__(self,legs): self.legs=legs
Poznámka: Instance proměnné nejsou dostupné pro přístup pomocí názvu třídy, protože se mění v závislosti na objektu, který k nim přistupuje.
Vytvořme program, který má deklarovány jak proměnné třídy, tak instance proměnné.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs
V uvedeném programu jsme použili jak instance, tak proměnné třídy. Tyto proměnné tedy tvoří atributy třídy.
Chování třídy
Jak bylo diskutováno, chování třídy je definováno metodami uvnitř třídy. Ale předtím, než se pustíme do diskuse o chování, musíme začít diskutovat o parametru “self”, který jsme použili v __init__().
Self:
Velmi jednoduše řečeno, kdykoli něco připojíme k self, říká to, že proměnná nebo funkce patří k této třídě. Také s “self” mohou být přístupné atributy nebo metody třídy.
Metody:
Metody třídy jsou funkce uvnitř třídy, které budou mít svůj první argument jako “self”. Metoda uvnitř třídy je definována pomocí klíčového slova “def”.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”)
V uvedené metodě “bark”, jak používáme proměnnou name, která je instance proměnnou, přistupujeme k ní pomocí “self” a tato funkce by vytiskla “woof woof!!!”, pouze pokud je jméno poskytnuté objektu, je pes.
Diskutovali jsme o většině komponentů třídy, ale možná se ptáte, jak vidět, zda třída funguje. Odpověď na to je, že pokud nevytvoříme objekt třídy, nebudeme schopni vidět, co třída dělá. Nyní definujme a vytvořme objekt třídy.
Objekty v Pythonu
Objekt je instance třídy. Třída je jen plán, ale objekt je instance třídy, která má skutečné hodnoty.
Kód pro definici nebo vytvoření objektu je ilustrován níže.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4)
Pro vytvoření objektu je syntaxe objectname=classname(arguments). Proto zde dáváme název zvířete jako pes a počet nohou jako 4. Nyní, když je objekt třídy vytvořen, dalším krokem je použít objekt k přístupu k jeho atributům. K přístupu k atributům třídy pomocí objektu si pamatujte, že pouze instance proměnné mohou být přístupné pomocí objektu. Instance proměnné v naší třídě jsou name a legs.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs)
Jak vidíme, jsme schopni přistupovat k instance proměnným pomocí notace tečky.
Pojďme prozkoumat výstup.
#Výstup dog 4
K přístupu k funkcím uvnitř třídy nebo metodám budeme používat notaci tečky. Příklad je ilustrován níže.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs) print(dog.bark())
#Výstup dog 4 woof woof!!!
V uvedeném příkladu vidíme, že přistupujeme k metodě třídy “bark” pomocí objektu dog, který jsme vytvořili. Vidíme, že v argumentech funkce nepoužíváme parametr “self”. To je proto, že nepotřebujeme používat “self” mimo třídu, protože objekt sám funguje jako self.
Dědičnost
Dědičnost je proces, prostřednictvím kterého mohou být atributy a metody třídy předány podtřídě. Třída, ze které podtřída dědí, je rodičovská třída. Syntaxe pro dědičnost je ilustrována níže.
#Dědičnost class parent: class child(parent):
Z výše uvedené ilustrace vidíme, že pro syntaxi dědičnosti umisťujeme název rodičovské třídy jako argument do podtřídy. Použijme třídu Animals a vytvořme podtřídu nazvanou dog. To je ilustrováno níže.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed
V uvedeném příkladu kódu jsme vytvořili třídu dog, která rozšiřuje třídu animals, kterou jsme vytvořili dříve. Také používáme parametry z třídy Animals pomocí Animals.__init__(arguments), které mají name a legs, které budou zděděny do třídy dog. Poté vytváříme instanční atribut pro třídu dog, což je breed.
Nyní vytvořme objekt pro třídu dog a přistupme k atributům a metodám třídy animals.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed pug=Dog("dog",4,"pug") pug.breed pug.name pug.legs pug.bark()
#Výstup pug dog 4 woof woof!!!
Jak vidíme z výstupu, atributy a metody rodičovské třídy jsou přístupné objektem podtřídy.
V tomto blogu jsme pokryli některé základy tříd v Pythonu. V dalším blogovém příspěvku se budeme zabývat tématem zpracování souborů.
Možná se vám také líbí náš Kurz JavaScriptu od začátečníka po pokročilého.
Robert Whitney
Odborník na JavaScript a lektor, který školí IT oddělení. Jeho hlavním cílem je zvýšit produktivitu týmu tím, že učí ostatní, jak efektivně spolupracovat při programování.
Python Course From Beginner to Advanced in 11 blog posts:
- Pythonové n-tice, seznamy, množiny a slovníky. Část 3 Python kurzu od začátečníka po pokročilého ve 11 blogových příspěvcích
- Python funkce. Část 7 Python kurzu od začátečníka po pokročilého ve 11 blogových příspěvcích
- Úvod do kurzu Python. Část 1: Kurz Python od začátečníka po pokročilého ve 11 blogových příspěvcích
- Proměnné a datové typy v Pythonu. Část 2 Python kurzu od začátečníka po pokročilého ve 11 blogových příspěvcích
- Python sady a slovníky. Část 4 Python kurzu od začátečníka po pokročilého v 11 blogových příspěvcích
- Python třídy a objekty. Část 9 Python kurzu od začátečníka po pokročilého ve 11 blogových příspěvcích
- Soubory v Pythonu. Část 10 Python kurzu od začátečníka po pokročilého ve 11 blogových příspěvcích
- Smyčky v Pythonu. Část 6 Python kurzu od začátečníka po pokročilého ve 11 blogových příspěvcích
- Pokročilé funkce v Pythonu. Část 8 Python kurzu od začátečníka po pokročilého ve 11 blogových příspěvcích