【发布时间】:2010-07-30 21:22:08
【问题描述】:
从事一个需要我能够随时腌制容器对象的项目,因为我们预计它会经常在外部条件下失败,并且能够从我们中断的地方完全恢复。
我非常广泛地使用 python 日志库,我的所有课程都从设置一个记录器开始,如下所示:
class foo:
def __init__(self):
self.logger = logging.getLogger("package.foo")
因为我正在挑选一个容器类,它里面有好几层类,每一层都有自己的记录器实例。
现在,出于某种原因,这些记录器正在破坏 Pickle。我收到以下错误,如果我从所有类中删除 self.logger,该错误就会消失:
Can't pickle 'lock' object: <thread.lock object at ... >
所以我的问题是,是否有某种方法可以从所有记录器中删除锁定对象,而不必通过我的整个对象树递归删除记录器,我必须在 unpickle 上重新创建。
【问题讨论】: