Структура файла байткода CPython (файл .pyc) включает 16-байтовый заголовок (четыре 32-битных слова) и полезную нагрузку переменного размера: 1
- Байты от 0 до 3 содержат магическое число, используемое для определения того, какая версия Python сгенерировала файл. 1
- Байты с 4 по 7 содержат битовое поле. 1
- Байты с 8 по 11 содержат временную метку даты модификации исходного файла. 1
- Байты с 12 по 15 содержат размер исходного файла. 1
- Начиная с 16-го байта полезная нагрузка хранит упорядоченный кодовый объект. 1
Инструкции байт-кода CPython занимают 2 байта. 2 Первый байт представляет опкод, а второй байт — значение аргумента для опкода. 2 Если инструкция не требует аргумента, второй байт устанавливается в 0. 2