Skip to content

Latest commit

 

History

History
78 lines (62 loc) · 3.53 KB

EXAM_GUIDE.md

File metadata and controls

78 lines (62 loc) · 3.53 KB

Python Advanced: Экзаменационный конспект

Краткий справочник по всему профи-курсу.

1. Виртуальные окружения и Poetry

  • Изоляция зависимостей для каждого проекта.
  • Poetry управляет пакетами и версиями (pyproject.toml, poetry.lock).
  • Запуск: poetry run python main.py.

2. Аннотации типов (Type Hints) и mypy

  • def func(x: int) -> str:.
  • Optional[T], Union[A, B], Any, Callable.
  • mypy проверяет типы до запуска.

3. Декораторы и замыкания

  • Декоратор — функция, оборачивающая другую функцию.
  • @functools.wraps сохраняет имя и докстринг.
  • Замыкание запоминает переменные из внешней области.

4. Магические методы (Dunder)

  • str / repr — вывод и отладка.
  • add, sub, mul — перегрузка операторов.
  • eq, lt — сравнение.
  • len, getitem.

5. Свойства и @dataclass

  • @property — доступ к методу как к атрибуту (с валидацией).
  • @classmethod — альтернативный конструктор.
  • @dataclass — авто-генерация init, repr, eq.

6. Итераторы и генераторы PRO

  • Итератор: iter, next.
  • yield from — делегирование вложенному генератору.
  • .send() — передача данных внутрь генератора.

7. Работа с API и Pydantic

  • requests.get() / httpx.
  • Pydantic (BaseModel) валидирует данные. Выбрасывает ValidationError.
  • python-dotenv для .env.

8. Асинхронность (asyncio)

  • async def / await.
  • asyncio.gather() для параллельного запуска.
  • Не блокирует программу (идеально для I/O).

9. Многопоточность и многопроцессорность

  • GIL в Python позволяет выполнять только один поток байт-кода.
  • threading (I/O) vs multiprocessing (CPU).
  • concurrent.futures (ThreadPoolExecutor / ProcessPoolExecutor).

10. Тестирование (pytest)

  • Файлы test_.py, функции test_.
  • assert для проверки.
  • @pytest.mark.parametrize для табличных тестов.
  • @pytest.fixture для подготовки данных.

11. Логирование

  • Модуль logging вместо print.
  • Уровни: DEBUG, INFO, WARNING, ERROR, CRITICAL.
  • Настройка через basicConfig().

12. Базы данных (SQLAlchemy)

  • create_engine — подключение к БД.
  • declarative_base — базовый класс.
  • session.add(), session.commit(), session.query().all().

13. Веб-фреймворк FastAPI

  • @app.get/post/put/delete — маршруты.
  • Запуск: uvicorn main:app --reload.
  • Валидация через Pydantic (BaseModel).
  • Документация на /docs.

14. Архитектура проекта

  • Слои: Models (БД), Schemas (Pydantic), Repositories (SQL), Services (логика), API (Routes).
  • Принцип единственной ответственности (SOLID).

15. Итоговый проект

  • Собраны: FastAPI, SQLAlchemy, Pydantic, обработка ошибок.