循环引用数据结构的内存管理-python cookbook(第3版)高清中文完整版

时间:2024-06-29 23:06:23
【文件属性】:

文件名称:循环引用数据结构的内存管理-python cookbook(第3版)高清中文完整版

文件大小:4.84MB

文件格式:PDF

更新时间:2024-06-29 23:06:23

python cookbook 第3版 高清 中文完整版

8.23 循环引用数据结构的内存管理 问题 你的程序创建了很多循环引用数据结构(比如树、图、观察者模式等),你碰到了内存管理 难题。 解决方案 一个简单的循环引用数据结构例子就是一个树形结构,双亲节点有指针指向孩子节点,孩 子节点又返回来指向双亲节点。 这种情况下,可以考虑使用 weakref 库中的弱引用。例 如: import weakref class Node: def __init__(self, value): self.value = value self._parent = None self.children = [] def __repr__(self): return 'Node({!r:})'.format(self.value) # property that manages the parent as a weak-reference @property def parent(self): return None if self._parent is None else self._parent() @parent.setter def parent(self, node): self._parent = weakref.ref(node) def add_child(self, child): self.children.append(child) child.parent = self


网友评论