previous up next hi end end

12. Třídy a instance

  1. Objektově orientované programování
  2. Vytvoření třídy
  3. Atributy
  4. Inicializační metoda a 'self'
  5. Instance jako parametry
  6. Obdélníky
  7. Instance jako výstupní hodnoty
  8. Instance jsou měnitelné
  9. Stejnost
  10. Kopírování
  11. Glosář
  12. Cvičení

12.1 Objektově orientované programování

Python je programovací jazyk, který podporuje objektově orientované programování (OOP).

Objektově orientované programování má své kořeny již v šedesátých letech, ale až v osmdesátých letech se stalo široce používaným programovacím postupem (paradigmatem) při tvorbě nového software.

Až dosud jsme psali programy s použitím procedurálního programovacího postupu (paradigmatu). Těžištěm procedurálního programování je psaní procedur (funkcí), které operují s daty. Při objektově orientovaném programování je pozornost zaměřena na vytváření objektů, které obsahují jak data, tak funkční vlastnosti.

Vzhledem k tomu, že je Python objektově orientovaný jazyk, lze všechny jeho prvky (čísla, řetězce, funkce, třídy, moduly, metody, atp) považovat za objekty, to jest (viz dále) za instance interně definovaných tříd. Všechny objekty mají stejný status - jsou to objekty prvního řádu (1. třídy ve smyslu "prvotřídní"). Lze je přiřadit k proměnné, vložit do seznamu nebo slovníku, zadat jako argument, atp.


12.2 Vytvoření třídy

Třída ve své podstatě definuje nový, složený datový typ. Různé vestavěné typy - třídy Pythonu (str, int, float, ...) používáme již od počátečních kapitol.

Nejjednodušší definice třídy vypadá takto:

class Emanuel:
    pass

Záhlaví složené z klíčového slova class, názvu třídy a dvojtečky je vše, co jednoduchá třída potřebuje.
Později se dovíme, že třída může dědit ze své nadtřídy, v tom případě by před dvojtečkou byl název supertřídy v závorkách.
Následuje odsazené tělo třídy, které bude obsahovat řadu dalších objektů. V naší demonstraci jsme použili pouze jedno klíčové slovo pass, které nedělá nic.

S naší prostinkou třídou můžeme už provádět řadu regulerních úkonů, například: