< Všechna témata
Tisk

OOP – třídy, atributy, metody

Objektově orientované programování (OOP) je založeno na třídách a objektech. Teď si podrobněji vysvětlíme, co jsou třídy, atributy a metody, a ukážeme si, jak se používají.

Vytvoření třídy

Představme si třídu jako návod nebo šablonu, podle které vytváříme objekty. Třída definuje, jaké vlastnosti (atributy) a schopnosti (metody) budou mít objekty, které z ní vytvoříme.

Pokud by byl program kuchařský recept, třída by byla seznam ingrediencí a pokynů, jak dort upéct. Samotný recept není dort – je to jen návod. Ale jakmile se podle tohoto receptu řídíme, vytvoříme reálný dort. Podobně třída je návod, podle kterého vzniká konkrétní objekt.

Třídu vytvoříme (definujeme) pomocí klíčového slova class. Název třídy obvykle začíná velkým písmenem, což je konvence, která usnadňuje čtení kódu.

class Auto:
    pass

Třída Auto je v tuto chvíli prázdná. Neposkytuje žádné funkce ani vlastnosti, ale už může být použita k vytvoření objektu.

Objekt

Objekt je konkrétní instance třídy. Pokud je třída návod, objekt je fyzický výrobek podle tohoto návodu.

Objekt vytvoříme přiřazením třídy do proměnné. Tím se stane z proměnné objekt třídy Auto (datového typu Auto).

moje_auto = Auto()
print(type(moje_auto))  # <class '__main__.Auto'>

Metody

Metody jsou funkce definované uvnitř třídy, které určují, co objekty mohou dělat. U auta to mohou být činnosti jako rozjet se, zastavit nebo zatroubit.

Metody definujeme stejně jako funkce, ale vždy mají jako první parametr self. Tento parametr odkazuje na konkrétní objekt, který metodu volá.

Metody následně voláme vždy u konkrétního objektu.

class Auto:
    def jizda(self):
        print("jedu")

skodovka = Auto()
skodovka.jizda()

Metoda s parametry

Metody mohou mít i vstupní parametr. Použití je stejné jako u funkcí, jen prvním parametrem je self.

class Auto:
    def pozdrav_ridice(self, ridic):
        print(f"Vítám tě {ridic} na palubě")

skodovka = Auto()
skodovka.pozdrav_ridice("Lukáš")

Atributy

Atributy jsou vlastnosti objektu. U auta to mohou být vlastnosti jako barva, maximální rychlost nebo značka. Atributy se definují stejně jako proměnné. Před jejich název při použití píšeme self – tím se odvoláváme na atribut třídy.

class Auto:
    znacka = "Škoda"
    def pozdrav_ridice(self, ridic):
        print(f"Vítám tě {ridic} na palubě")
        print(f"Aktuálně řídíš auto značky: {self.znacka}")

skodovka = Auto()
skodovka.pozdrav_ridice("Lukáš")

Metoda __init__ (konstruktor)

Jak již jsme si řekli – třída je pouze šablona. Každý objekt může mít různé hodnoty atributů, přestože jsou vytvořeny podle stejné třídy.

To samozřejmě podle minulého příkladu nebude fungovat.

Atributy objektu definujeme uvnitř metody zvané konstruktor. Konstruktor je speciální metoda, která se automaticky spustí při vytvoření objektu. V Pythonu se konstruktor jmenuje __init__.

class Auto:
    def __init__(self, znacka, barva):
        self.znacka = znacka
        self.barva = barva

skodovka = Auto("Škoda", "Červená")
audina = Auto("Audi", "Černá")

Použití metod, atributů a konstruktoru

Je zvykem atributy nadefinovat v konstruktoru a následně definovat různé metody. Například.

class Auto:
    def __init__(self, znacka, rychlost):
        self.znacka = znacka
        self.rychlost = rychlost

    def zrychlit(self, zvyseni):
        self.rychlost += zvyseni
        print(f"Auto nyní jede rychlostí {self.rychlost} km/h.")
        
    def vypis_info(self):
        print(f"Máš auto značky: {self.znacka}"
              f"Aktuálně jede rychlostí {self.rychlost}")

skodovka = Auto("Škoda",120)
skodovka.vypis_info()
skodovka.zrychlit(50)

Zdroje

Seznam zdrojů

itnetwork.cz. Online. Dostupné z: https://www.itnetwork.cz/.

w3schools.com. Online. Dostupné z: https://www.w3schools.com/.

Python 3 documentation. Online. Dostupné z: https://docs.python.org/3/

SMOLKA, Pavel. Programovací jazyk Python [online]. Mendelova univerzita v Brně, 2019. Dostupné z: https://emendelu.publi.cz/book/771-programovaci-jazyk-python-pruvodce-studiem

ŠVEC, Jan. Učebnice jazyka Python (aneb Létající cirkus) [online]. 2002. Dostupné z: https://i.iinfo.cz/files/root/k/Ucebnice_jazyka_Python.pdf

PILGRIM, Mark. Ponořme se do Python(u) 3: Dive into Python 3. CZ.NIC. Praha: CZ.NIC, c2010. ISBN 978-80-904248-2-1.

PECINOVSKÝ, Rudolf. Python: kompletní příručka jazyka pro verzi 3.11. Knihovna programátora (Grada). Praha: Grada Publishing, 2023. ISBN 978-80-271-3891-3.

Další zdroje (Youtube, obrázky) jsou vždy uvedeny.

Obsah
© 2025 Lukáš Pospíšil