Krutá Smršť Přednášek 2019
Pokročilé povídání o Pythonu – hlasování o tématech
- Pokročilý Python - témata
Lambda funkce. Pohodlnější práce se seznamy a kolekcemi: list comprehensions, iterátory, generátory. Dekorátory, closures a higher-order funkce: jak udělat funkci která vrací funkci, případně modifikuje jinou funkci.
Objektový model Pythonu, třídy, dědičnost.
Metatřídy, magické metody. Aneb jak vyrobit objekty, které se chovají "divně": třeba emulují pole nebo číselný typ nebo všechna volání metod ve skutečnosti spouští po síti na jiném stroji.
Předpoklady: Základy OOP (P2OOP nebo dřívější znalost)Efektivní výpočty s maticemi a velkými poli: numpy. Další triky: numba (JIT kompilátor, který dokáže rozumně jednoduchý Python/numpy kód dynamicky přeložit do nativního kódu), Cython – aneb jak psát náročné kusy výpočtu v C.
Různé způsoby, jak z Pythonu volat Céčkové knihovny či psát v Céčku moduly pro Python: Cython, ctypes, cffi, SWIG. Možná si ukážeme i něco z Python/C API.
Jak zařídit, aby program dělal víc věcí najednou: vlákna (a proč je spíš nechcete používat), multiprocessing, smyčky událostí, asynchronní programování (asyncio). Ukázka použití pro implementaci síťových serverů.
Stručná zmínka o webových frameworcích (ale detailně si ukazovat nebudeme), minimalistický framework Flask. Low-level technologie, na kterých webové frameworky stojí. WGSI a jeho deployment pomocí uWSGI. WSGI middleware. Kombinování částí z různých frameworků v jedné aplikaci.
Předpoklady: Základní povědomí o fungování webu a protokolu HTTP.