Сетевая Академия ЛАНИТ-ТИССА Казань
+7 (843) 533-39-21
+7 (917) 898-94-26
  Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
  Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

Язык Python - продвинутый

02-PYTHON

Содержание курса

Модуль 1. Python - интерпретатор.

  • Стандартный загрузчик модулей и объектов.
  • Ссылки из кучи на исходные тексты модулей, динамическая компиляция и интерпретация кода Python приложения.
  • Различие между builtin модулями и модулями исходных кодов.

Модуль 2. Cкалярные типы данных и их поведение в оперативной памяти виртуальной машины.

  • Загрузка типа и создание переменной, распределение памяти и доступ к описанию переменной.
  • Использование «магических» свойств и методов для получения информации по объекту в куче виртуальной машины.

Модуль 3. Объекты, Классы - четыре постулата OOP.

  • Класс object и type - родоначальники в Python. Два способа создания класса.
  • Загрузка класса в кучу, получение ссылки на исходный код.
  • Распределение памяти под хранение объекта в куче , заполнение объекта данными.
  • Статические и динамические методы оъекта.
  • Определение свойств класса, инкапсуляция свойств, динамический доступ к свойствам объектов.
  • Практическое использование dataclass декоратора, определение Пост-конструктора, переопределение стандартных методов класса для отображения объекта, хеширования, сортировки.
  • Таблица динамических методов и полиморфизм в Python.
  • Абстракции, ABC класс базовой библиотеки.
  • Практическое применение абстракции.
  • Классы - декораторы.

Модуль 4. Многопоточное программирование в Python.

  • Определение потока.
  • Обычные и демон потоки.
  • Несколько способов создания потока.
  • Блокировки и взаимные блокировки потоков, синхронизация. Различные состояния потоков.
  • GIL (Global Interpreter Lock) механизм для реализации потокобезопасности в Python.
  • Пул потоков. Извлечение результата выполнения потока, синхронизация потоков в пуле.
  • Очередь для организации обмена данными между несколькими потоками.

Модуль 5. Процессы в Python.

  • Особенность ведения журнала логов при работе нескольких процессов.
  • Организация пула процессов.
  • Распределение процессов по физическим процессорам хоста.
  • Механизм Fork-Join при работе с процессами.
  • Pipe и Queue для обмена данными между процессами.

Модуль 6. Асинхронные механизмы в Python.

  • Определение корутины, цикл задач, планирование событий .
  • Запуск корутины в цикле. Ожидание.
  • Управление порядком выполнения корутин.
  • Сравнение выполнения нескольких задач в потоках, процессах и асинхронно.

Модуль 7. Практическое использование процессов и асинхронных корутин для построения микросервиса.

  • Библиотека flask и waitress для организации сервера микросервисов.
  • Автоматический запуск и перезапуск сервера на linux платформе.
  • Цикл событий и отработка запроса, получение заголовка запроса, формирование ответа.
  • Тестирование нагрузки на сервер, построение клиентского приложения. Отслеживание процессов и потоков flask сервера.
  • Организация асинхронного доступа в базу данных или другой внешний сервер из потока выполнения микросервиса.

Слушатели

Курс предназначен для слушателей, которые работают с Python, а теперь расширяют свои знания и будут создавать профессиональные сервера для приложений масштаба предприятия.

Продолжительность: 5 дн.
Цена: 35000 р.