2012-03-27 1 views
0

Was ist WeakValueDictionary von weakref? Ich weiß, dass es erlaubt, Gegenstände im Wörterbuch zu speichern, ohne dass Müllsammler sich um sie kümmern, aber wann sollten sie benutzt werden? Ich kenne das Beispiel nicht, in dem wir den Garbage Collector in Python umgehen wollten.WeakValueDictionary in Python

Antwort

2

ist hier ein Verweis von dem offiziellen Python-Handbuch:

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

Wie in den docs verwendet Schwache Referenzen gefunden werden, wenn Sie aus irgendeinem Grunde ein großes Objekt zu indizieren müssen, aber nicht möchte es behalten, wenn etwas anderes es löscht. Vielleicht speichere ich kryptografische Klassen, die ziemlich viele interne Dinge enthalten, in einem Wörterbuch. Wenn eine der Klassen gelöscht wird, kann ich Speicher sparen.