python中的WeakValueDictionary

时间:2012-03-27 13:42:31

标签: python

weakref的WeakValueDictionary是什么?我知道它允许在没有垃圾收集器关心它们的情况下将项目存储在字典中但是什么时候应该使用它们?我不知道我们想要在python中绕过垃圾收集器的情况的例子。

2 个答案:

答案 0 :(得分:2)

以下是官方python手册的参考资料:

A weak reference to an object is not enough to keep the object alive: when the only remaining references to a referent are weak references, garbage collection is free to destroy the referent and reuse its memory for something else. A primary use for weak references is to implement caches or mappings holding large objects, where it’s desired that a large object not be kept alive solely because it appears in a cache or mapping.

答案 1 :(得分:1)

可以在docs中找到,如果由于某种原因需要索引大对象,请使用弱引用,但如果其他内容删除它,则不想保留它。也许我在字典中存储加密类,其中包含相当多的内部内容。如果其中一个类被删除,那么我可以节省内存。