Nový kurz

Objektové programování v Pythonu

Objektově orientované programování (OOP) je způsob návrhu a organizace programů, který umožňuje spojovat data a operace nad nimi do samostatných, spolupracujících objektů. Kurz představí základní principy objektového návrhu a ukáže, jak je prakticky využívat v Pythonu.

Účastníci se naučí navrhovat vlastní třídy a objekty, pracovat s jejich stavem a chováním, rozlišovat vhodné použití kompozice a dědičnosti a využívat polymorfismus. Pozornost bude věnována nejen syntaxi Pythonu, ale především tomu, jak rozdělit problém do smysluplných komponent, jak mezi nimi navrhnout spolupráci a jak se vyhnout zbytečně složitému návrhu.

Kurz se soustředí na běžné a prakticky využitelné techniky objektového programování. Navazuje na kurz základů Pythonu. Pokročilejší objektově orientované techniky pak rozšiřuje zejména kurz Python303.

Kód
Python204

Délka kurzu
3 dny (8:30 – 16:00)

Forma
V naší učebně nebo online

Hlavní lektor kurzu

Ing. Jiří Bráza

Ing. Jiří Bráza

Instruktor programování

Více o lektorovi

Termíny

Katalogová cena: 17 700 Kč (bez DPH)

Máte zájem o vypsání termínu? Potřebujete poradit?

Neváhejte se na nás obrátit. Jsme vám k dispozici a rádi vám pomůžeme.

Ing. Michaela Setinská

Ing. Michaela Setinská

Bližší informace o školení


+420 731 400 369
setinska@oksystem.cz

Ing. Lumír Vojtěchovský

Ing. Lumír Vojtěchovský

Bližší informace o školení


+420 724 332 135
vojtechovsky@oksystem.cz

Kurz určen pro

Programátory, kteří znají základy Pythonu a chtějí se naučit navrhovat a vytvářet aplikace s využitím objektově orientovaného programování. Kurz je vhodný také pro ty, kteří již objekty a třídy používají, ale chtějí si ujasnit principy OOP a zlepšit návrh vlastního kódu.

Osnova

1. Objektový přístup k řešení problémů

- Principy objektově orientovaného programování
- Procedurální a objektový přístup, jejich možnosti a omezení
- Objekty jako spojení stavu a chování
- Odpovědnosti objektů a spolupráce objektů
- Rozklad problému na třídy a objekty
- Modelování jednoduchého problému a návrh jeho objektové struktury

2. Třídy a objekty v Pythonu

- Definice tříd a vytváření instancí
- Atributy instance a atributy třídy
- Metody a parametr `self`
- Konstruktor `__init__` a inicializace objektu
- Životní cyklus objektu a reference
- Viditelnost a konvence pro veřejné a interní členy
- Zapouzdření a ochrana invariantů objektu

3. Spolupráce objektů a návrh odpovědností

- Volání metod a předávání objektů jako parametrů
- Vztahy mezi objekty
- Kompozice a agregace
- Kompozice versus dědičnost
- Rozdělení odpovědností a omezení příliš rozsáhlých tříd
- Návrh rozhraní objektu a minimalizace závislostí

4. Dědičnost a polymorfismus

- Princip dědičnosti a specializace
- Překrývání (override) metod
- Volání implementace předka pomocí `super()`
- Polymorfismus a zaměnitelnost objektů
- Vícenásobná dědičnost a pořadí řešení metod (MRO)
- Kdy dědičnost pomáhá a kdy je vhodnější kompozice

5. Objektové rozhraní a běžné konstrukce Pythonu

- Vlastnosti (properties) a řízený přístup k atributům
- Statické metody a třídní metody
- Základní speciální metody, například `__str__`, `__repr__`, `__eq__` a porovnávání
- Objekt jako kontejner: základní přehled metod pro práci s obsahem
- Abstraktní třídy a rozhraní pomocí `abc`

6. Návrh, testování a údržba objektového kódu

- Návrh tříd podle odpovědností
- Závislosti mezi objekty a jejich omezení
- Rozšiřitelnost a změny požadavků
- Testování objektů a jejich spolupráce
- Refaktoring procedurálního řešení do objektového návrhu
- Praktické cvičení: návrh a implementace menší objektově orientované aplikace

 

Absolvent kurzu bude umět

- Vysvětlit základní principy objektově orientovaného programování a rozpoznat situace, ve kterých je objektový přístup přínosný.
- Navrhovat třídy a objekty s jasně vymezenými odpovědnostmi.
- Vytvářet vlastní třídy, inicializovat objekty a pracovat s jejich atributy a metodami.
- Navrhovat spolupráci objektů a využívat kompozici.
- Používat dědičnost a polymorfismus a posoudit, kdy je jejich použití vhodné.
- Využívat běžné objektové konstrukce Pythonu včetně properties, speciálních metod a datových tříd.
- Číst, upravovat a testovat objektově orientovaný kód.

Požadavky pro absolvování kurzu

- Základy programování a algoritmizace.
- Základní znalost jazyka Python, zejména proměnných, datových typů, podmínek, cyklů, funkcí, kolekcí a práce s moduly.
- Praktická zkušenost s tvorbou jednoduchých programů v Pythonu; doporučeným předpokladem je absolvování kurzu Python101 nebo odpovídající znalosti.

Technické vybavení

Všechny učebny jsou vybaveny nadstandardními počítači připojenými k Internetu, učebny jsou prostorné, klimatizované, bezbariérové a s připojením na Wi-Fi. V případě zájmu lze školení absolvovat online live.

Literatura

Všichni účastníci školení obdrží materiály společnosti OKsystem. 

PDF ke stažení

Ceny jsou bez DPH. OKsystem a.s. si vyhrazuje právo změnit termín a cenu školení.

Podobné kurzy

Prohlédněte si některé podobné kurzy z naší široké nabídky.

Nový kurz

Pokročilé techniky v Pythonu Python303


17 700 Kč Detail kurzu
Nový kurz

Asynchronní a vícevlákenné programování v Pythonu Python301


11 800 Kč Detail kurzu
Nový kurz

Testujeme v Pythonu Python205


17 700 Kč Detail kurzu

Kontaktujte nás

Neváhejte se na nás obrátit ať už máte jakýkoliv dotaz.

Simona Dianová

Simona Dianová

Organizace školení a testů


+420 236 072 251
dianova@oksystem.cz

Ing. Dana Černá

Ing. Dana Černá

Certifikační testy


+420 236 072 318
cernad@oksystem.cz

Potřebujete toho o nás vědět víc, nebo nás raději chcete kontaktovat pomocí formuláře?

Kontaktní stránka

OKškolení je součástí OKsystem a.s.

Zásady ochrany soukromí při použití AI Asistenta:

AI Asistent (chatbot) je softwarová aplikace určená k simulaci konverzace s lidskými uživateli. Chatbot pracuje s informacemi, které do něj uživatel vkládá, včetně osobních nebo důvěrných informací. Proto takové informace do komunikace s chatbotem nikdy nevkládejte.

V konverzaci používejte anonymní příklady místo skutečných informací a nikdy s chatbotem nesdílejte osobní údaje či citlivé dokumenty, jelikož není možné zaručit, že data v nich obsažená nebudou dále zpracována.