Ресурсов о том, как работает стандартная реализация Python (CPython) внутри, мало. Пробиваться самому сквозь не самый очевидный код на C — задача для питониста очень сложная. Чтение кода на C требует определённой практики. Серия лекций, прочитанная Филипом Гио, — хорошая отправная точка.
Филип подробно рассказывает о внутренних структурах Python, проводя студентов от байт‑кода к структурам, написанным на C.
Темы, охваченные курсом:
- Байт‑код и главный цикл интерпретатора.
- Фреймы, вызовы функций, области видимости.
PyObject.- Типы данных в Python.
- Объект с кодом, объект функции.
- Итераторы.
- Классы и объекты.
- Генераторы.
Рассказ ведётся с большим количеством примеров. Каждое погружение внутрь Python начинается с конкретного кусочка кода на Python. Потом разбирается получившийся байт‑код. Дальше — уже команда за командой — разбирается реализация команд байт‑кода на C.
Хотелось бы, чтобы таких курсов было больше. Я бы даже хотел хороший курс на ресурсе вроде Coursera с заданиями. Может, такой курс уже есть?