Python Deep Dive
Как CPython на самом деле исполняет ваш код. Каждая статья написана против закреплённого тега интерпретатора и прямо говорит, что здесь гарантия языка, а что — деталь реализации.
- Разделы
- 5
- Статьи
- 14
- ИСТОЧНИКОВ
- 115
Разделы
Статьи
Рекомендуемый порядок
Порядок собран из предпосылок, размеченных в самих материалах, а не назначен редакцией. Это не обязательная программа: каждая статья читается и сама по себе, но в этой последовательности меньше возвратов.
- 1От исходника к байткоду: шесть шагов, которые Python делает до первой инструкции
- 2Цикл интерпретатора: где живёт фрейм и как раздаётся управление
- 3Адаптивный интерпретатор: как CPython переписывает сам себя по дороге
- 4GIL: не «Python не умеет в потоки», а «поток ждёт столько, сколько вы попросили»
- 5Что происходит на o.x: дескрипторы, MRO и кеш типа
- 6Вызов функции: сколько стоит, что при этом не происходит и где живут ячейки
- 7__slots__: что меняет в объектной модели и сколько это стоит в байтах
- 1Словари Python изнутри: хеш-таблица CPython
- 2Строки изнутри: три ширины, четыре случая раскладки и цена склейки
Можно читать независимо: Типизация декораторов: почему проверяющий замолкает и чем это лечится
Граф знаний
НЕЛИНЕЙНО · С УЧЁТОМ ПРЕДПОСЫЛОКТемы связаны между собой, и связи здесь не нарисованы, а посчитаны: каждая статья сама называет, на что опирается и с чем соседствует, а картинка собирается из этих названий. Пунктирный кружок — тема, которую статьи уже называют связанной, но которая ещё не написана.
16 · 26 вершин и связей
Связи списком
- *args и **kwargs: две звёздочки, которые стоят по-разному — и одна из них делает неизвестные имена допустимыми — связана с: Типизация декораторов: почему проверяющий замолкает и чем это лечится
- Декораторы: выражения сверху вниз, применение снизу вверх — связана с: Типизация декораторов: почему проверяющий замолкает и чем это лечится
- Переход на async: потолок ставит пул соединений, а не модель исполнения — связана с: GIL: не «Python не умеет в потоки», а «поток ждёт столько, сколько вы попросили», Цикл событий: один поток, очередь и шесть шагов, которые повторяются
- Цикл событий: один поток, очередь и шесть шагов, которые повторяются — связана с: GIL: не «Python не умеет в потоки», а «поток ждёт столько, сколько вы попросили», От исходника к байткоду: шесть шагов, которые Python делает до первой инструкции, Переход на async: потолок ставит пул соединений, а не модель исполнения
- GIL: не «Python не умеет в потоки», а «поток ждёт столько, сколько вы попросили» — связана с: Переход на async: потолок ставит пул соединений, а не модель исполнения, Управление памятью в CPython: три цифры, которые все повторяют неправильно, Цикл интерпретатора: где живёт фрейм и как раздаётся управление, Цикл событий: один поток, очередь и шесть шагов, которые повторяются
- Словари Python изнутри: хеш-таблица CPython — связана с: Списки изнутри: рост, сжатие и цена работы с началом, Строки изнутри: три ширины, четыре случая раскладки и цена склейки
- Списки изнутри: рост, сжатие и цена работы с началом — связана с: __slots__: что меняет в объектной модели и сколько это стоит в байтах, Словари Python изнутри: хеш-таблица CPython, Строки изнутри: три ширины, четыре случая раскладки и цена склейки, Управление памятью в CPython: три цифры, которые все повторяют неправильно
- Строки изнутри: три ширины, четыре случая раскладки и цена склейки — связана с: Словари Python изнутри: хеш-таблица CPython, Списки изнутри: рост, сжатие и цена работы с началом, Управление памятью в CPython: три цифры, которые все повторяют неправильно
- Управление памятью в CPython: три цифры, которые все повторяют неправильно — связана с: __slots__: что меняет в объектной модели и сколько это стоит в байтах, GIL: не «Python не умеет в потоки», а «поток ждёт столько, сколько вы попросили», Списки изнутри: рост, сжатие и цена работы с началом, Строки изнутри: три ширины, четыре случая раскладки и цена склейки
- __slots__: что меняет в объектной модели и сколько это стоит в байтах — связана с: Адаптивный интерпретатор: как CPython переписывает сам себя по дороге, Списки изнутри: рост, сжатие и цена работы с началом, Управление памятью в CPython: три цифры, которые все повторяют неправильно, Что происходит на o.x: дескрипторы, MRO и кеш типа
- Адаптивный интерпретатор: как CPython переписывает сам себя по дороге — связана с: __slots__: что меняет в объектной модели и сколько это стоит в байтах, Вызов функции: сколько стоит, что при этом не происходит и где живут ячейки, От исходника к байткоду: шесть шагов, которые Python делает до первой инструкции, Цикл интерпретатора: где живёт фрейм и как раздаётся управление, Что происходит на o.x: дескрипторы, MRO и кеш типа
- Что происходит на o.x: дескрипторы, MRO и кеш типа — связана с: __slots__: что меняет в объектной модели и сколько это стоит в байтах, Адаптивный интерпретатор: как CPython переписывает сам себя по дороге, Вызов функции: сколько стоит, что при этом не происходит и где живут ячейки, Цикл интерпретатора: где живёт фрейм и как раздаётся управление
- Вызов функции: сколько стоит, что при этом не происходит и где живут ячейки — связана с: Адаптивный интерпретатор: как CPython переписывает сам себя по дороге, Типизация декораторов: почему проверяющий замолкает и чем это лечится, Цикл интерпретатора: где живёт фрейм и как раздаётся управление, Что происходит на o.x: дескрипторы, MRO и кеш типа
- Цикл интерпретатора: где живёт фрейм и как раздаётся управление — связана с: GIL: не «Python не умеет в потоки», а «поток ждёт столько, сколько вы попросили», Адаптивный интерпретатор: как CPython переписывает сам себя по дороге, Вызов функции: сколько стоит, что при этом не происходит и где живут ячейки, От исходника к байткоду: шесть шагов, которые Python делает до первой инструкции, Что происходит на o.x: дескрипторы, MRO и кеш типа
- От исходника к байткоду: шесть шагов, которые Python делает до первой инструкции — связана с: Адаптивный интерпретатор: как CPython переписывает сам себя по дороге, Цикл интерпретатора: где живёт фрейм и как раздаётся управление, Цикл событий: один поток, очередь и шесть шагов, которые повторяются
- Типизация декораторов: почему проверяющий замолкает и чем это лечится — связана с: *args и **kwargs: две звёздочки, которые стоят по-разному — и одна из них делает неизвестные имена допустимыми, Вызов функции: сколько стоит, что при этом не происходит и где живут ячейки, Декораторы: выражения сверху вниз, применение снизу вверх