copyreg注册pickle支持功能(2)pickle和marshal模块永久存储Python数据(必读进阶Python教程)(参考资料)

copyreg模块提供了一种定义酸洗特定对象时使用的函数的方法。的picklecopy酸洗/复制这些对象时模块使用这些功能。该模块提供有关非类的对象构造函数的配置信息。这样的构造函数可以是工厂函数或类实例。

copyreg.constructor对象
声明对象是有效的构造函数。如果object不可调用(因此无法作为构造函数),则引发TypeError
copyreg.pickle类型功能构造函数=无
声明该函数应该用作类型类型的对象的“简化”函数。 函数应返回包含两个或三个元素的字符串或元组。

可选的构造函数参数(如果提供)是一个可调用的对象,可以在调用时使用函数在酸洗时返回的参数元组来重建对象。 TypeError如果object是一个类或构造函数不可调用,则会引发 。

有关函数构造函数pickle所需接口的更多详细信息,请参阅该模块。请注意,pickler对象或子类的 属性也可用于声明缩减函数。dispatch_tablepickle.Pickler

示例

下面的示例将展示如何注册pickle函数以及如何使用它:

>>> import copyreg, 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,)  ...  >>> copyreg.pickle(C, pickle_c)  >>> c = C(1)  >>> d = copy.copy(c)  # doctest: +SKIP  pickling a C instance...  >>> p = pickle.dumps(c)  # doctest: +SKIP  pickling a C instance...

 

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。