М2. Python Advanced¶
🚧 Контент у розробці. Наповнюється після завершення пілотної фази на М1.
Уроки модуля:
- Урок 19. Функції як об'єкти першого класу — сервіс доставки після карантину: словник команд,
key=, callback, фабрики й замикання, конвеєр з функцій. - Урок 20. Класи, простір імен —
DeliveryServiceтримає стан і правила; атрибути класу й екземпляра,@classmethod; архітектура: функції, замикання чи клас. Практикум на реальних даних — «Титанік». - Урок 21. Наслідування, поліморфізм — таксі, кур'єр, самовивіз і нічний міксин з однаковим
fare(); MRO,super(), качина типізація, LSP; архітектура:ifза типом, ієрархія чи композиція. Практикум — «Титанік»: «Жінки та діти — першими». - Урок 22. Інкапсуляція, область видимості — інваріанти,
_і__, автомат статусів замовлення,@propertyлише для читання,globalпроти стану в об'єкті; архітектура: інтерфейс проти стану, правило в моделі чи в сервісі. Практикум — «Автомобілі як об'єкти». - Урок 23. Практикум П4. Рекурсія, «розділяй і володарюй», перебір з поверненням — базовий випадок і стек викликів, обхід вкладеного меню,
merge_sortі подвоєння, backtracking для наборів ваучерів з відсіканням,lru_cache; архітектура: рекурсія проти явного стеку. - Урок 24. @property, декоратори класів, dunder — протоколи Python (
len,in,+,<,hash,__call__), гроші як об'єкт-значення, обчислювані властивості, дескриптори, реєстр класів,@total_ordering,@dataclass; архітектура: значення проти сутності, вибір інструменту. Практикум — «Автомобілі: дескриптори». - Урок 25. Ітератори advanced — клас-ітератор і ітерабельне, стани генератора,
close()іfinally,.send()і сопрограми, генератор-автомат,yield fromз результатом,itertools(dropwhile,takewhile,groupby,pairwise,accumulate,combinations); архітектура: ETL-конвеєр подій, pull проти push. - Урок 26. Тестування з pytest (+ валідація AI-коду) — AAA, читання падінь, межі,
pytest.raisesіapprox,parametrize, fixtures і фабрики,tmp_path,unittest,Mockі «patch where used», coverage, перевірка AI-коду тестами на інваріанти; архітектура: піраміда тестів, залежності параметром. Проєктdelivery_tests/і практикумbasics/. - Урок 27. Практикум П5. Динамічне програмування + greedy (вступ) — розклад водія на зміну: жадібний вибір за найранішим кінцем і аргумент обміну, контрприклади іншим правилам, ДП «взяти або пропустити» (
p(i), таблиця вручну, відновлення розкладу), мемоізація проти табуляції, перевірка перебором; архітектура: greedy / перебір / ДП,bisectдоO(n log n). Додатково — модульreі жадібні квантифікатори. - Урок 28. Потоки, multiprocessing, asyncio: вступ — задачі, що чекають, і задачі, що рахують; конкурентність і паралелізм;
ThreadPoolExecutor, стан гонитви йLock, GIL;ProcessPoolExecutor, окрема пам'ять процесів і__main__;async def/await,asyncio.gather, тайм-аут, блокуючі виклики; архітектура: вибір інструменту, функції без спільного стану. - Урок 29. Практикум П6. Stack, Queue, Heap, Trie + LRU Cache → ООП-пакет — стек (скасування дій), черга на
dequeі дослід подвоєння протиlist.pop(0), купа зsift_up/sift_downпротиheapq, префіксне дерево для автодоповнення адрес, LRU-кеш наOrderedDictпротиfunctools.lru_cache; артефакт модуля — пакетdispatch(композиція структур уDispatcher, 57 тестів pytest,python -m dispatch).