Commit b1c0e3b2 authored by Ezio Melotti's avatar Ezio Melotti

#11481: update copy_reg docs and add example.

parent 26025d63
......@@ -14,11 +14,11 @@
module: cPickle
module: copy
The :mod:`copy_reg` module provides support for the :mod:`pickle` and
:mod:`cPickle` modules. The :mod:`copy` module is likely to use this in the
future as well. It provides configuration information about object constructors
which are not classes. Such constructors may be factory functions or class
instances.
The :mod:`copy_reg` module offers a way to define fuctions used while pickling
specific objects. The :mod:`pickle`, :mod:`cPickle, and :mod:`copy` modules
use those functions when pickling/copying those objects. The module provides
configuration information about object constructors which are not classes.
Such constructors may be factory functions or class instances.
.. function:: constructor(object)
......@@ -43,3 +43,24 @@ instances.
See the :mod:`pickle` module for more details on the interface expected of
*function* and *constructor*.
Example
-------
The example below would like to show how to register a pickle function and how
it will be used:
>>> import copy_reg, copy, pickle
>>> class C(object):
... def __init__(self, a):
... self.a = a
...
>>> def pickle_c(c):
... print("pickling a C instance...")
... return C, (c.a,)
...
>>> copy_reg.pickle(C, pickle_c)
>>> c = C(1)
>>> d = copy.copy(c)
pickling a C instance...
>>> p = pickle.dumps(c)
pickling a C instance...
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment