pickletools.md
1> **Источник:** https://python-all.ru/3.1/library/pickletools.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 30.13. `pickletools` – Инструменты для разработчиков pickle89Этот модуль содержит различные константы, связанные с внутренними деталями модуля [`pickle`](https://python-all.ru/3.1/library/pickle.html#module-pickle), некоторые пространные комментарии о реализации и несколько полезных функций для анализа данных, сериализованных с помощью pickle. Содержимое этого модуля полезно для разработчиков ядра Python, работающих над [`pickle`](https://python-all.ru/3.1/library/pickle.html#module-pickle); обычные пользователи модуля [`pickle`](https://python-all.ru/3.1/library/pickle.html#module-pickle), вероятно, не найдут модуль `pickletools` релевантным.1011#### `pickletools.dis(pickle[, out=None, memo=None, indentlevel=4])`1213Выводит символьную дизассемблерную распечатку pickle в файлоподобный объект1415*out*1617, по умолчанию1819`sys.stdout`2021.2223*pickle*2425может быть строкой или файлоподобным объектом.2627*memo*2829может быть словарём Python, который будет использоваться как memo для pickle; его можно использовать для выполнения дизассемблирования по нескольким pickle, созданным одним и тем же pickler. Последовательные уровни, обозначаемые кодами операций3031`MARK`3233в потоке, отступают на3435*indentlevel*3637пробелов.3839#### `pickletools.genops(pickle)`4041Предоставляет4243[*итератор*](https://python-all.ru/3.1/glossary.html#term-iterator)4445по всем опкодам в pickle, возвращая последовательность троек4647`(opcode, arg, pos)`4849.5051*opcode*5253– экземпляр класса5455`OpcodeInfo`5657;5859*arg*6061– декодированное значение аргумента опкода в виде Python-объекта;6263*pos*6465– позиция, в которой находится этот опкод.6667*pickle*6869может быть строкой или файлоподобным объектом.7071#### `pickletools.optimize(picklestring)`7273Возвращает новую эквивалентную pickle-строку после удаления неиспользуемых опкодов7475`PUT`7677. Оптимизированный pickle короче, требует меньше времени на передачу, меньше места для хранения и распаковывается быстрее.78