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
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.
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.
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.
Pokročilé techniky v Pythonu Python303
Asynchronní a vícevlákenné programování v Pythonu Python301
Testujeme v Pythonu Python205
Proč OKškolení?
Jaké jsou hlavní výhody našeho školicího centra?
36+ let na trhu
Jsme na trhu již víc než 36 let a máme v tomto oboru rozsáhlé zkušenosti.
Jsme vzdělávací středisko s bohatou historií a tradicí.
Zkušení lektoři
Základem každého kvalitního vzdělání jsou dobří a zkušení lektoři a na tom si v OKškolení obzvlášť zakládáme. Naši špičkoví lektoři tu na vás čekají.
Moderní učebny
Všechny učebny jsou prostorné, klimatizované, bezbariérové a vybaveny nadstandardními počítači, s připojením na Wi-Fi.
Benefity
Ochrana investic do vzdělávání, věrnostní program, slevy, občerstvení, dotace a další.
Kontaktujte nás
Neváhejte se na nás obrátit ať už máte jakýkoliv dotaz.
Potřebujete toho o nás vědět víc, nebo nás raději chcete kontaktovat pomocí formuláře?