> **Источник:** https://python-all.ru/3.1/library/copyreg.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 11.2. `copyreg` – регистрация функций поддержки [`pickle`](https://python-all.ru/3.1/library/pickle.html#module-pickle)

Модуль `copyreg` предоставляет поддержку для модуля [`pickle`](https://python-all.ru/3.1/library/pickle.html#module-pickle). Модуль [`copy`](https://python-all.ru/3.1/library/copy.html#module-copy), вероятно, также будет использовать её в будущем. Он предоставляет информацию о конфигурации конструкторов объектов, которые не являются классами. Такие конструкторы могут быть фабричными функциями или экземплярами классов.

#### `copyreg.constructor(object)`

Объявляет

*object*

допустимым конструктором. Если

*object*

не является вызываемым (и, следовательно, недопустим в качестве конструктора), возбуждает

[`TypeError`](https://python-all.ru/3.1/library/exceptions.html#TypeError)

.

#### `copyreg.pickle(type, function, constructor=None)`

Объявляет, что *function* должна использоваться как функция редукции (reduction) для объектов типа *тип*. *функция* должна возвращать строку или кортеж, содержащий два или три элемента.

Необязательный параметр *constructor*, если указан, представляет собой вызываемый объект, который можно использовать для восстановления объекта при вызове с кортежем аргументов, возвращаемых *function* во время упаковки. [`TypeError`](https://python-all.ru/3.1/library/exceptions.html#TypeError) будет возбуждено, если *object* является классом или *constructor* не является вызываемым.

Смотрите модуль [`pickle`](https://python-all.ru/3.1/library/pickle.html#module-pickle) для получения дополнительных сведений об интерфейсе, ожидаемом от *function* и *constructor*.
