Programování s Pythonem ti otevírá mnoho možností, které přesahují jednoduché skripty. Centrální součástí objektově orientovaného programování je práce s třídami. Ty tvoří základ pro objekty a umožňují ti vytvářet a spravovat komplexní datové struktury create. V této příručce se naučíš, jak definovat vlastní třídy v Pythonu, abys jejich vlastnosti a metody efektivně využil.
Nejdůležitější poznatky
- Třídy jsou klíčem k objektově orientovanému programování v Pythonu.
- Initializer (konstruktor) ti umožňuje definovat specifické vlastnosti při vytváření třídy.
- Metody v třídách ti umožňují zapouzdřit funkce, které pracují na vlastnostech objektu.
- Přístup k vlastnostem se provádí pomocí tečkového operatoru.
Krok za krokem návod
Začněme základy struktury tříd v Pythonu. Nejprve musíš definovat novou třídu pomocí klíčového slova class. Můžeš to udělat ve svém Python kódu následovně:

Zde máme prázdnou třídu jménem Zaměstnanec. Můžeš ji inicializovat bez parametrů, což znamená, že třída bude vytvořena bez specifického nastavení. To je důležitý základ pro zajištění, že později nedostaneš chyby při vytváření objektů.
Nyní vytvoř objekt této třídy. Stačí použít název třídy a nastavit prázdné závorky:
V tomto případě máme objekt Zaměstnanec, který jsme právě vytvořili. Dalším krokem je rozšířit třídu o vlastnosti. Například můžeš přidat jméno do třídy Zaměstnanec.
Nejprve musíš definovat initializer, který slouží jako konstruktor tvé třídy. To se provádí pomocí metody __init__.

Zde vidíš, jak se definuje konstruktor __init__. Předáváme jméno jako parametr a používáme self, abychom uložili jméno pro aktuální objekt.
Nyní, když máš vlastnost, můžeš při vytváření objektu rovnou předat jméno:

Pokud nyní vytvoříš objekt účastník s názvem "Jan", bude jméno uloženo v instanci. Pomocí automatického doplňování můžeš zkontrolovat, zda bylo jméno správně nastaveno.
Chcete-li využít vlastnosti, můžeš je zavolat pomocí tečkového operatoru:

Toto je okamžik, kdy můžeš přistupovat k vlastnostem svého objektu. V tomto případě tiskneš jméno účastníka.
Kromě vlastností můžeš také implementovat metody. Vytváření metody funguje podobně jako definice funkce:

Zde definuješ metodu přihlásit. Opět si všimni, že self je automaticky předáván jako parametr metodě, aby se dostal k instanci. Při přihlášení bychom mohli například vytisknout zprávu o úspěchu:

Když zavoláš metodu přihlásit, vypadá to takto:

Zde voláš metodu na instanci účastník, což dává zpětnou vazbu o přihlášení.
Nakonec můžeme také předávat parametry metodám, obdobně jako u funkcí. Například metoda odhlásit, která očekává parametr pro předčasné odhlášení:

Zde analyzuješ, zda se účastník chce odhlásit předčasně, a vypisuješ odpovídající zprávu.
ScreenShot_320
To ti ukazuje, jak interaktivní mohou být tvé třídy a metody a jak reagují na vstupy.
Na závěr bychom měli shrnout základní principy, které jsme se naučili. Definice tříd spočívá v definování atributů a metod, které jsou relevantní pro příslušné objekty. Konstruktor __init__ je klíčový pro nastavení atributů při vytváření objektu.
Souhrn – Vytváření a používání vlastních tříd v Pythonu
Díky pochopení a aplikaci těchto základních principů můžeš v Pythonu vyvíjet silné a flexibilní programy. Můžeš vytvářet třídy, které zapouzdřují specifické funkce a vlastnosti, aby byla programování uživatelsky přívětivější a efektivnější.
Často kladené otázky
Jak definuji třídu v Pythonu?Použij klíčové slovo class, následované názvem třídy a dvojtečkou.
Jaký je účel konstruktoru __init__?Používá se k provádění inicializací při vytváření objektu.
Jak získám přístup k vlastnostem objektu?Použij tečkový operator, následovaný názvem vlastnosti, např. objekt.vlastnost.
Mohu předat více parametrů jedné metodě?Ano, můžeš definovat metody, které akceptují více parametrů.
Mohu používat funkce uvnitř svých tříd?Ano, metody jsou nic jiného než funkce, které jsou svázány s třídou.