copyreg --- 注册�� pickle 模�使用的函数¶

�代�: Lib/copyreg.py


copyreg 模��供了�在�存特定对象时使用的一�定义函数方�。 pickle 和 copy 模�会在�存/拷�特定对象时使用这些函数。 此模��供了�类对象构造器的相关�置信�。 这样的构造器�以是工厂函数或类实例。

copyreg.constructor(object)¶

将 object 声明为一个有效的构造器。 如果 object 是��调用的(因而�是一个有效的构造器)则会引� TypeError。

copyreg.pickle(type, function, constructor_ob=None)¶

声明 function 应当被用作 type 类型的对象的“归约�函数。 function 必须返回一个字符串或包�二至六个元素的元组。 请�阅 dispatch_table 了解有关 function 的接�的更多细节。

constructor_ob 形�是一个旧�特性并且现在会被忽略,但如果传入则它必须为一个�调用对象。

请注�一个 pickler 或 pickle.Pickler 的�类的 dispatch_table 属性也�以被用�声明约归函数。

示例¶

以下示例将会显示如何注册一个�存函数,以�如何�使用它:

>>> import copyreg, copy, pickle
>>> class C:
...     def __init__(self, a):
...         self.a = a
...
>>> def pickle_c(c):
...     print("pickling a C instance...")
...     return C, (c.a,)
...
>>> copyreg.pickle(C, pickle_c)
>>> c = C(1)
>>> d = copy.copy(c)  
pickling a C instance...
>>> p = pickle.dumps(c)  
pickling a C instance...