Zeigen Sie etwas wie:
%Vor%Wie können Sie das Objekt nur mit einer Referenz löschen, sagen wir x?
del x
wird nicht ausreichen; das Objekt ist beispielsweise immer noch von b aus erreichbar.
Nein nein nein. Python hat einen Garbage Collector, der sehr starke Territory-Probleme hat - es wird Sie nicht mit der Erstellung von Objekten verwirren, Sie werden nicht damit beschäftigt Objekte zu löschen.
Einfach gesagt, es kann nicht getan werden, und zwar aus einem guten Grund.
Wenn Ihr Bedarf zum Beispiel von Caching-Algorithmen stammt, die Verweise enthalten, aber nicht verhindern sollte, dass Daten gesammelt werden, wenn sie nicht verwendet werden, sollten Sie sich weakref
.
Die einzige Lösung, die ich gerade sehe, ist, dass Sie sicherstellen sollten, dass Sie den einzigen Verweis auf x
haben, alle anderen müssen nicht bekommen x
selbst aber eine schwache Referenz, die auf x
zeigt. Schwache Referenzen werden im weakref
-Modul implementiert und Sie können es folgendermaßen verwenden:
Beachten Sie jedoch, dass nicht alle Klassen schwach referenziert werden können. Insbesondere können die meisten integrierten Typen nicht. Einige integrierte Typen können schwach referenziert werden, wenn Sie sie unterklassieren (wie dict
), andere nicht (wie int
).
Sie nicht. Das ist der ganze Punkt. Stellen Sie sich vor, dass sich l
in einer Bibliothek außerhalb Ihrer Kontrolle befindet. Es ist zu erwarten, dass die Sammlungselemente nicht verschwinden.
Tags und Links python