Hi ,我来请教一个问题呗。
class Old(object):
def __init__(self):
self.current = {}
self.new_added = []
def keep_history(self, key):
if key in self.filed:
self.current[key] = self.field[key]
else:
self.new_added.append(key)
def born(self):
self.son = Normal(self._fields)
self._fields = None
return self.son
class Normal(object):
def __init__(self, field=None):
self.filed = filed or {}
def mutate(self, key, value):
self.aging()
self.keep_history(key)
self._filed[key] = value
return self.born()
def aging(self):
self.__class__ = Old
self.__init__()
现在是这种设计,想 Normal 对象在 mutate 的时候,保留一份 最老-》比较老-》年轻 的记录
当前据说考虑 GC 的顺序,是老对象指向新对象,不因为最新对象而阻碍了老对象回收。
没用 weak ref 是因为 weak ref 开销大。。。
但这样的代码确实不美观。。 我在想如何写的性能又高,代码又好读。。
请各位大神指点。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.