Článok pomôže čitateľovi pochopiť základné triedy Pythonu spolu s niektorými základnými aplikáciami v reálnom svete. Na písanie kódu budeme používať Visual Studio Code ako náš editor kódu. Ak ste si ešte nenainštalovali Visual Studio Code, pokyny sú uvedené v prvom blogu.

Triedy a objekty v Pythone – obsah:

  1. Triedy Pythonu
  2. Triedy Pythonu – definícia
  3. Inicializácia tried Pythonu
  4. Napíšme našu prvú triedu Pythonu
  5. Atribúty
  6. Správanie triedy
  7. Objekty v Pythone
  8. Dedičstvo

Triedy Pythonu

Ako sme diskutovali v prvom blogu, Python je objektovo orientovaný programovací jazyk. Existujú tri frázy, ktoré sú veľmi dôležité pri diskusii o objektovo orientovanom programovaní v Pythone. Prvá je trieda, druhá je objekt a tretia je dedičstvo. Začnime s tým, čo je trieda.

Triedy Pythonu – definícia

Trieda je plán alebo rozšíriteľný program, ktorý pomáha pri vytváraní objektov. Trieda sa skladá zo správania a stavu. Správanie triedy je demonštrované prostredníctvom funkcií vo vnútri triedy, ktoré sa nazývajú metódy. Stav triedy je demonštrovaný pomocou premenných vo vnútri triedy, ktoré sa nazývajú atribúty.

Inicializácia tried Pythonu

Trieda môže byť inicializovaná pomocou nasledujúcej syntaxe.

Trieda v Pythone je definovaná pomocou kľúčového slova “class” nasledujúceho po názve triedy. Základná syntax funkcie v Pythone je ilustrovaná nižšie.

Pre prí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" />
# Vytvorte funkciu
# trieda Opica
class classname:

Poznámka: názov triedy má rovnaké normy ako deklarácia premennej.

Napíšme našu prvú triedu Pythonu

# prvá trieda

class Animals:
	pass

V hore uvedenom kóde sme napísali triedu, ktorú budeme ďalej rozvíjať v blogu. Ako vidíte, použili sme kľúčové slovo “class”.

Teraz sa pozrime, ako pridať komponenty do triedy zvierat. Ale predtým sa naučme o konštruktore “__init__()”. Konštruktory sa používajú na inštancovanie objektov. Tu sa __init__() používa na inštancovanie objektov. Konštruktor môže byť predvolený s iba self ako argumentom alebo parametrový s požadovanými argumentmi.

Atribúty

Existujú dva rôzne typy atribútov, prvé sú premenné triedy a druhé sú inštančné premenné. Premenné triedy sú premenné, ktoré vlastní trieda. Tieto premenné sú tiež dostupné pre všetky inštancie triedy. Preto sa ich hodnota nezmení, aj keď sa inštancia zmení.

# premenné triedy

class Animals:
	type=”mammals”

Inštančné premenné sú premenné, ktoré patria k samotným inštanciám. Preto sa ich hodnota zmení, keď sa inštancia zmení.

# premenné triedy

class Animals:
	def __init__(self,legs):
		self.legs=legs
		

Poznámka: Inštančné premenné nie sú dostupné na prístup pomocou názvu triedy, pretože sa menia v závislosti od objektu, ktorý ich pristupuje.

Vytvorme program, ktorý má deklarované aj premenné triedy, aj inštančné premenné.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs

V hore uvedenom programe sme použili obidve inštančné a premenné triedy. Tieto premenné tvoria atribúty triedy.

Správanie triedy

Ako sme diskutovali, správanie triedy je definované metódami vo vnútri triedy. Ale predtým, ako prejdeme do diskusie o správaní, musíme začať diskutovať o parametri “self”, ktorý sme použili v __init__().

Self:

Veľmi jednoducho povedané, kedykoľvek pripojíme niečo k self, hovorí to, že premenná alebo funkcia patrí tejto triede. Taktiež, s “self” môžu byť prístupné atribúty alebo metódy triedy.

Metódy:

Metódy triedy sú funkcie vo vnútri triedy, ktoré budú mať svoj prvý argument ako “self”. Metóda vo vnútri triedy je definovaná pomocou kľúč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 hore uvedenej metóde “bark”, keďže používame premennú name, ktorá je inštančná premenná, pristupujeme k nej pomocou “self” a táto funkcia by vytlačila “woof woof!!!”, iba ak je názov poskytnutý objektu, pes.

Diskutovali sme o väčšine komponentov triedy, ale možno sa pýtate, ako zistiť, či trieda funguje. Odpoveďou na to je, že pokiaľ nevytvoríme objekt triedy, nebudeme schopní vidieť, čo trieda robí. Teraz definujme a vytvorme objekt triedy.

Objekty v Pythone

Objekt je inštancia triedy. Trieda je len plán, ale objekt je inštancia triedy, ktorá má skutočné hodnoty.

Kód na definovanie alebo vytvorenie objektu je ilustrovaný nižšie.

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)

Aby sme vytvorili objekt, syntax je objectname=classname(arguments). Preto tu dávame názov zvieraťa ako pes a počet nôh ako 4. Teraz, keď je objekt triedy vytvorený, ďalším krokom je použiť objekt na prístup k jeho atribútom. Na prístup k atribútom triedy pomocou objektu si pamätajte, že iba inštančné premenné môžu byť prístupné pomocou objektu. Inštančné premenné v našej triede sú 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)

Ako vidíme, sme schopní pristupovať k inštančným premenným pomocou bodovej notácie.

Preskúmajme výstup.

#Výstup

dog
4

Aby sme pristupovali k funkciám vo vnútri triedy alebo metódach, budeme používať bodovú notáciu. Príklad je ilustrovaný nižšie.

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 hore uvedenom príklade vidíme, že pristupujeme k metóde triedy “bark” pomocou objektu dog, ktorý sme vytvorili. Vidíme, že v argumentoch funkcie nepoužívame parameter “self”. To je preto, že nepotrebujeme používať “self” mimo triedy, pretože objekt sám pôsobí ako self.

Dedičstvo

Dedičstvo je proces, prostredníctvom ktorého môžu byť atribúty a metódy triedy prenášané na podtriedu. Trieda, z ktorej podtrieda dedí, je rodičovská trieda. Syntax pre dedičstvo je ilustrovaná nižšie.

#Dedičstvo

class parent:

class child(parent):

Z hore uvedenej ilustrácie vidíme, že pre syntax dedičstva umiestňujeme názov rodičovskej triedy ako argument do podtriedy. Použime triedu Animals a vytvorme podtriedu s názvom dog. To je ilustrované nižšie.

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 hore uvedenom príklade kódu sme vytvorili triedu dog, ktorá rozširuje triedu animals, ktorú sme vytvorili predtým. Taktiež používame parametre z triedy Animals pomocou Animals.__init__(arguments), ktoré majú názov a nohy, ktoré budú dedené do triedy dog. Potom vytvárame inštančný atribút pre triedu dog, ktorý je breed.

Teraz vytvorme objekt pre triedu dog a pristupujme k atribútom a metódam triedy 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!!!

Ako vidíme z výstupu, atribúty a metódy rodičovskej triedy sú prístupné objektom podtriedy.

V tomto blogu sme pokryli niektoré základy tried v Pythone. V nasledujúcom blogovom príspevku sa budeme zaoberať témou správy súborov.

python_classes

Môžete sa tiež pozrieť na náš kurz JavaScript od začiatočníka po pokročilého.

Robert Whitney

Odborník na JavaScript a inštruktor, ktorý školí IT oddelenia. Jeho hlavným cieľom je zvýšiť produktivitu tímu tým, že učí ostatných, ako efektívne spolupracovať pri programovaní.

View all posts →