Objekty v Pythonu

Pomocí objektů si můžeme vytvářet vlastní datové typy.

Objekty obsahují

data (kterým se říká atributy objektu)

a funkce (kterým se říká metody)

K atributům a metodám se přistupuje přes tečku.

Skoro všechno v pythonu je objekt - již znáte např. následující metody:

seznam.append() - metoda typu list

"".join(seznam) - metoda typu string

Proč objekty

Třída vs. instance

třída = šablona, datový typ

  např. string

objekt = instance třídy, konkrétní provedení, které vznikne ze šablony

  např. "velryba"

První třída

Nyní si můžeme vytvářet objekty typu Pes:

Atributy, metody

K prázdnému objektu přidáme data (atributy) a funkce (metody):

Přidáme metodu zastekej()

Vysvětlení:

pocet_nohou je proměnná třídy, je to vlastnost všech psů

Každá metoda má jako první parametr "tento objekt", např. pes1. Je zvykem pojmenovávat ho self.


Metodě můžete předávat parametry jako běžné funkci

Proměnné instance

= vlastnost konkrétního psa

Proměnnou instance můžeme přidat k již vytvořenému objektu, (psa můžeme v průběhu jeho života pojmenovat):

Nebo můžeme proměnnou instance vytvořit již při vytváření objektu (pes se se jménem již narodí). K tomu slouží speciální metoda, které se říká konstruktor.

Konstruktor

Konstruktor je speciální metoda, která se zavolá při vytváření objektu. Slouží k inicializaci, tj. k počátečnímu nastavení objektu.

Jmenuje se __init__. Tak jako v případě ostatních metod, její první parametr bude self.

Příklad: Proměnné instance

K proměnným instance uvnitř metod můžeme přistupova pomocí self, např. self.jmeno:

Příklad: Proměnná třídy

Pomocí proměnné třídy můžeme spočítat, kolikrát se celkem zaštěkalo. Proměnná nepatří žádnému konkrétnímu psovi, ale celé třídě psů.

Dokumentační řetězec

Speciální řetězec s popisem třídy nebo funkce. Můžeme si ho nechat vypsat pomocí atributu .__doc__, také nám ho může "napovídat" naše vývojové prostředí.