Это — серия из нескольких статей о том, как устроен CPython изнутри.
- Интерпретатор байткода
- Что из себя представляет этот самый байткод
- Что такое стек в понятии CPython, и как оно работает
- Как устроены дескрипторы, слоты и классы на нижнем уровне
- Пространства имен (namespaces)
Для «простых программистов, работающих работу» — наверное, ничего интересного.
Тем, кто желает разобраться в Питоне «до последнего байта» — очень рекомендую.
Вдобавок очень хочу посоветовать Ely Bendersky с его Python Internals. Эта серия статей тоже посвящена «внутреннему устройству» и прекрасно сочетается с тестами Yaniv Aknin.
- Как создаётся объект (в деталях)
- Что такое class и чем отличается от type
- Как именно происходит вызов callable
- И т.д. (symbol tables, например)
На самом деле подобного рода информации очень немного. Документация хорошо описывает CPython C API но не рассказывает о деталях, о том как это всё работает.
У меня до C кода дело доходило разве до обсуждения реализации GIL насколько я помню.
Если есть еще интересные статьи по внутреннему устройству — пишите в комментариях, я добавлю сюда. Наверняка что-то запамятовал, но в целом тема раскрыта очень скудно.
Так что если хотите узнать «как оно работает на самом деле» — читайте статьи по ссылкам.
UPD.
По устройству типов данных:
Строки
Целые числа
Списки
Словари (для версий Python <3.3)Лекция Larry Hastings (release manager для Python 3.4, между прочим) с US PyCon 2012 на рассматриваемую тему.
Автор: Andrew Svetlov