Документация Python неофициальный перевод

pickletools.md

30 строк · 3.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/pickletools.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 32.13. [`pickletools`](https://python-all.ru/2.7/library/pickletools.html#module-pickletools) – Инструменты для разработчиков pickle89Новое в версии 2.3.1011**Исходный код:** [Lib/pickletools.py](https://python-all.ru/src/2.7/Lib/pickletools.py)1213---1415Этот модуль содержит различные константы, относящиеся к тонкостям модуля [`pickle`](https://python-all.ru/2.7/library/pickle.html#module-pickle), подробные комментарии о реализации и несколько полезных функций для анализа сериализованных данных. Содержимое этого модуля полезно разработчикам ядра Python, работающим над реализациями [`pickle`](https://python-all.ru/2.7/library/pickle.html#module-pickle) и [`cPickle`](https://python-all.ru/2.7/library/pickle.html#module-cPickle); обычным пользователям модуля [`pickle`](https://python-all.ru/2.7/library/pickle.html#module-pickle) модуль [`pickletools`](https://python-all.ru/2.7/library/pickletools.html#module-pickletools), скорее всего, не понадобится.1617#### `pickletools.dis(pickle, out=None, memo=None, indentlevel=4)`1819Выводит символический разбор pickle в файлоподобный объект *out*, по умолчанию в `sys.stdout`. *pickle* может быть строкой или файлоподобным объектом. *memo* может быть словарём Python, который будет использоваться как памятка pickle; его можно использовать для выполнения разборов по нескольким pickle, созданным одним и тем же упаковщиком. Последовательные уровни, обозначаемые `MARK` опкодами в потоке, отступают на *indentlevel* пробелов.2021#### `pickletools.genops(pickle)`2223Предоставляет [итератор](https://python-all.ru/2.7/glossary.html#term-iterator) по всем опкодам в pickle, возвращая последовательность троек `(opcode, arg, pos)`. *opcode* – экземпляр класса `OpcodeInfo`; *arg* – это декодированное значение (как объект Python) аргумента опкода; *pos* – позиция, на которой находится этот опкод. *pickle* может быть строкой или файлоподобным объектом.2425#### `pickletools.optimize(picklestring)`2627Возвращает новую эквивалентную pickle-строку после удаления неиспользуемых опкодов `PUT`. Оптимизированный pickle короче, занимает меньше времени на передачу, требует меньше места при хранении и распаковывается более эффективно.2829Новое в версии 2.6.30