【发布时间】:2011-06-11 01:04:00
【问题描述】:
假设我有一堂课:
class Thing(object):
cachedBar = None
def __init__(self, foo):
self.foo = foo
def bar(self):
if not self.cachedBar:
self.cachedBar = doSomeIntenseCalculation()
return self.cachedBar
为了得到一些激烈的计算,所以我将它缓存在内存中以加快速度。
但是,当我腌制其中一个类时,我不希望 cachedBar 被腌制。
我可以将 cachedBar 标记为 volatile/transient/not picklable?
【问题讨论】:
-
你可以找到昂贵的函数并记住它们。
-
@Nick 这正是他正在做的事情,只是他想确保备忘录不会与对象一起被腌制。
-
卢克,我想会有更容易记忆的子功能。