__getstate__ 与 __setstate__的作用
来源:互联网 发布:c语言教案 谭浩强 编辑:程序博客网 时间:2024/05/17 00:09
一些对象类型(譬如,文件对象)不能进行 pickle。处理这种不能 pickle 的对象的实例属性时可以使用特殊的方法( _getstate_() 和 _setstate_() )来修改类实例的状态。这里有一个 Foo 类的示例,我们已经对它进行了修改以处理文件对象属性:
class Foo(object): def __init__(self, value, filename): self.value = value self.logfile = file(filename, 'w') def __getstate__(self): """Return state values to be pickled.""" f = self.logfile return (self.value, f.name, f.tell()) def __setstate__(self, state): """Restore state from the unpickled state values.""" self.value, name, position = state f = file(name, 'w') f.seek(position) self.logfile = fpickle Foo 的实例时,Python 将只 pickle 当它调用该实例的 _getstate_() 方法时返回给它的值。类似的,在 unpickle 时,Python 将提供经过 unpickle 的值作为参数传递给实例的 _setstate_() 方法。在 _setstate_() 方法内,可以根据经过 pickle 的名称和位置信息来重建文件对象,并将该文件对象分配给这个实例的 logfile 属性。
转自:http://www.cnblogs.com/cobbliu/archive/2012/09/04/2670178.html
- __getstate__ 与 __setstate__的作用
- 与的区别与作用
- 与的区别与作用
- 与的区别与作用
- 地的分类与作用
- cookie的定义与作用
- 路由器的原理与作用
- ISS的作用与应用
- 栈与队列的作用
- 路由器的原理与作用
- _M_lower_bound与_M_upper_bound的作用
- SqlParameter的作用与用法
- dup 与 dup2 的作用
- SqlParameter的作用与用法
- 路由器的原理与作用
- hitTest的作用与用法
- hitTest的作用与用法
- cascade与inverse的作用
- 系统设计黄金法则:简单之美
- Gstreamer工作原理分析
- POJ1001大数相乘
- android rom
- (CloseHandle函数)内核对象、进程和线程
- __getstate__ 与 __setstate__的作用
- ORA-27101: shared memory realm does not exist 错误的处理
- CONST
- Activity-Service-Receiver-Provider
- 二分查找位运算——32位整数中寻找第一个为1的位
- java逐行读取txt文本中文乱码解决方案
- JSTL概述
- build.xml
- Android Jni基础学习