使用weakref实现逻辑

时间:2014-05-05 10:34:23

标签: python weak-references

我有一个代表节点的Node类,我希望有一个字典映射节点到节点集。

{Node: set(Node)}

现在,只要节点被“删除”,就需要更新这样的字典。不仅需要从字典的“键”中删除节点,还需要从它所属的任何“值集”中删除它。

weakref提供了一种实现此逻辑的方法,而无需任何额外的努力;该集合变为WeakSetdict变为WeakKeyDictionary,现在会自动发生“更新”。

但是,关于weakref的大多数讨论都建议它应该用于防止参考周期和实现缓存等。使用弱引用来实现上面的核心逻辑是一个好主意吗?具体来说,依靠垃圾收集器来做通常手动实现的事情是否有任何危险。

0 个答案:

没有答案