Перечитываю снова Pythons Innards (Yaniv Aknin).
Это — серия из нескольких статей о том, как устроен CPython изнутри.
Для «простых программистов, работающих работу» — наверное, ничего интересного.
Тем, кто желает разобраться в Питоне «до последнего байта» — очень рекомендую.
Вдобавок очень хочу посоветовать Ely Bendersky с его Python Internals. Эта серия статей тоже посвящена «внутреннему устройству» и прекрасно сочетается с тестами Yaniv Aknin.
На самом деле подобного рода информации очень немного. Документация хорошо описывает CPython C API но не рассказывает о деталях, о том как это всё работает.
У меня до C кода дело доходило разве до обсуждения реализации GIL насколько я помню.
Если есть еще интересные статьи по внутреннему устройству — пишите в комментариях, я добавлю сюда. Наверняка что-то запамятовал, но в целом тема раскрыта очень скудно.
Так что если хотите узнать «как оно работает на самом деле» — читайте статьи по ссылкам.
UPD.
По устройству типов данных:
Строки
Целые числа
Списки
Словари (для версий Python <3.3)
Лекция Larry Hastings (release manager для Python 3.4, между прочим) с US PyCon 2012 на рассматриваемую тему.
Это — серия из нескольких статей о том, как устроен 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 на рассматриваемую тему.
По устройству типов данных:
ОтветитьУдалить* (Строки) http://www.laurentluce.com/posts/python-string-objects-implementation/
* (Инты) http://www.laurentluce.com/posts/python-integer-objects-implementation/
* (Списки) http://www.laurentluce.com/posts/python-list-implementation/
* (Словари) http://www.laurentluce.com/posts/python-dictionary-implementation/ (для версий Python <3.3)
> Если есть еще интересные статьи по внутреннему устройству — пишите в комментариях, я добавлю сюда.
ОтветитьУдалитьДобавляйте.
@Rostyslav Dzinko спасибо, добавил. Когда-то читал эти статьи, но не смог вспомнить автора.
ОтветитьУдалитьВот еще в закладках нарыл. Какая-то черная практика :)
ОтветитьУдалить* http://pyevolve.sourceforge.net/wordpress/?p=2171
А вот эту ссылку переносить в статью не буду. Не хочу показывать «еще три способа сломать напрочь интерпретатор».
ОтветитьУдалитьНе знаю на сколько в тему, но вот несколько докладов о работе Python:
ОтветитьУдалитьhttp://www.youtube.com/watch?v=twQKAoq2OPE
http://www.youtube.com/watch?v=XGF3Qu4dUqk
Первый доклад не о работе Python а скорее вообще о том как запускается процесс и что с ним происходит, куда расходуется память и т.д. В общем такой себе ликбез для тех, кто пишет на Python и C в глаза не видел.
УдалитьLarry Hastings рассказывает о внутреннем устройстве. Я изначально не хотел давать ссылки на видео, но эту добавлю.
А можно узнать как вообще стать python core developer? Допустим желающий не знает Си (или знает его на начальном уровне). Очень хотелось бы прочесть вашу статью по этой теме.
ОтветитьУдалитьВообще-то хватит и питона.
ОтветитьУдалитьКак стать — открываете http://bugs.python.org/ и вперед!