logo Class

Magické slovo třída (class) v objektovém programování (OOP)

Letmý úvod do objektového programování si naznačíme na tradičním hello world projektu: blikání ledky. Svítivá dioda (LED) je malá součástka, kterou snad nemusíme představovat. Takže jak je to s těmi "objekty"?

Všechno v Pythonu je objekt. Základní vlastnost objektů (v programu) je to, že obsahují jak data (informace), tak předpis chování – instrukce nebo metody, které s těmito daty pracují. U svítivé diody budou data (vlastnosti / property) 1 nebo 0 - podle toho, jestli svítí nebo nesvítí. A metoda bude třeba blikni nebo v případě sviť je to přesněji: změň hodnotu (value) na 1 value(1) nebo pro zhasni je to: změň hodnotu na 0 value(0).

Předpis objektu je ve třídě class(). Podle tohoto předpisu vytváříme takzvanou instanci, do závorek se dávají případné vstupní parametry. Na PINU 2 máme připojenu LED a chceme s ní pracovat pomocí dostupných metod pro třídu Led? Mikrokontroléru to řekneme takto:

led = Led(2) Což znamená: vytvoř novou instanci led podle vzoru Led s parametrem 2 (což je číslo PINu, na kterém tuto ledku chceme mít). Je vhodné dodržet nepsané pravilo, že třída začíná vždy velkým písmenem. Abychom odlišili led od Led

led.value(1) Syntaxe je pak: instance objektu led "tečka" metoda value "( parametry )" (1), ze pouze 1, možno i True

Chceme jinou Led? Na jiném pinu? Třeba druhou na PINu 33? Vytvoříme instanci stejného objektu: led2 = Led(33) > a pak jí používáme "stejně": led2.value(1)

Na rozdíl od proměnné: a = 123 Metoda nebo funkce data získá nebo na základě parametrů zpracuje, proměnná je obsahuje.

Třída je jako formička na vánoční cukroví. Kolečko, Hvězdička, Prasátko - to je určení tvaru. A instance jsou jednotlivé kousky cukroví touto formičkou vyrobené. Můžeme si vytvořit tucet hvězdiček, podobným způsobem si můžeme připojit více LEDek (každou na jiném PINu)

  • led1 = Led(20)
  • led2 = Led(2)
  • led3 = Led(33)

rozsvícení druhé ledky je: led2.value(1) no a zhasnutí třetí je led3.value(0)

Shrnutí:

Téměř vše v Pythonu je objekt. Objekt je kolekce dat (proměnných) a metod (funkcí), které s danými daty pracují. Prototypem objektů jsou třídy, z nichž jsou všechny objekty (čísla, řetězce, funkce, moduly, metody, atp) odvozeny coby instance.