From: Ezio Melotti Date: Thu, 8 Nov 2012 08:59:03 +0000 (+0200) Subject: #11481: update copy_reg docs and add example. X-Git-Tag: v2.7.4rc1~402 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b1c0e3b22991b4efaa9e6be425ce6a12f741e37b;p=thirdparty%2FPython%2Fcpython.git #11481: update copy_reg docs and add example. --- diff --git a/Doc/library/copy_reg.rst b/Doc/library/copy_reg.rst index 80ccb4b72dc3..e145cd58248f 100644 --- a/Doc/library/copy_reg.rst +++ b/Doc/library/copy_reg.rst @@ -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...