copyreg注册pickle支持功能(2)pickle和marshal模块永久存储Python数据(必读进阶Python教程)(参考资料)
该copyreg
模块提供了一种定义酸洗特定对象时使用的函数的方法。的pickle
和copy
酸洗/复制这些对象时模块使用这些功能。该模块提供有关非类的对象构造函数的配置信息。这样的构造函数可以是工厂函数或类实例。
copyreg.
constructor
(对象)- 声明对象是有效的构造函数。如果object不可调用(因此无法作为构造函数),则引发
TypeError
。
copyreg.
pickle
(类型,功能,构造函数=无)- 声明该函数应该用作类型类型的对象的“简化”函数。 函数应返回包含两个或三个元素的字符串或元组。
可选的构造函数参数(如果提供)是一个可调用的对象,可以在调用时使用函数在酸洗时返回的参数元组来重建对象。
TypeError
如果object是一个类或构造函数不可调用,则会引发 。有关函数和构造函数
pickle
所需接口的更多详细信息,请参阅该模块。请注意,pickler对象或子类的 属性也可用于声明缩减函数。dispatch_table
pickle.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],我们会很快的为您处理。