По одной задаче-заготовке на каждую тему из ../../theory/python.md.
Формат: рабочий скелет с дырами (raise NotImplemented, # todo), условие — в докстринге,
самопроверка (assert / ожидаемый вывод) — внизу файла. Файлы пронумерованы в порядке теории.
| # | Файл | Тема теории |
|---|---|---|
| 01 | 01_dataclasses.py |
Новинки: dataclasses |
| 02 | 02_match_case.py |
Новинки: match/case (structural pattern matching) |
| 03 | 03_typing.py |
Новинки: typing (TypedDict, Protocol, Literal, Self) |
| 04 | 04_mutability.py |
Мутабельность типов + опасность default-аргументов |
| 05 | 05_hash.py |
__hash__ / __eq__, хэшируемость |
| 06 | 06_closures.py |
Область видимости (LEGB), замыкания, late binding |
| 07 | 07_slots.py |
__slots__, экономия памяти |
| 08 | 08_context_managers.py |
Контекстные менеджеры (sync + async) |
| 09 | 09_new_vs_init.py |
__new__ vs __init__ (singleton) |
| 10 | 10_mixins.py |
Mixins, множественное наследование, MRO |
| 11 | 11_access_modifiers.py |
Модификаторы доступа, name mangling |
| 12 | 12_gil_primes.py |
GIL: треды vs процессы (CPU-bound) |
| 13 | 13_asyncio_io.py |
Asyncio (IO-bound, конкурентные ожидания) |
| 14 | 14_pytest.py |
Юниттесты и моки (pytest) |
| 15 | 15_jwt.py |
JWT + подпись, stateless auth |
| 16 | 16_stateless.py |
Stateless vs stateful, масштабирование |
| 17 | 17_signals.py |
OOM killer и сигналы, graceful shutdown |
- Открываешь файл по номеру, читаешь условие в докстринге.
- Закрываешь дыры (
# todo,raise NotImplemented). - Запускаешь файл (
python NN_*.py) — внизу самопроверка. Для03_typing.pyещё иmypy --strict, для14_pytest.py— пишешь тесты и гоняешьpytest.