deleting objects by finding all references and deleting?
Terry Reedy
tjreedy at udel.edu
Tue Jun 10 01:52:41 EDT 2008
"Jacob Davis" <j.foster.davis at gmail.com> wrote in message
news:C673A5C7-9971-4CAA-8CEB-3993C3E93F9C at gmail.com...
| I read in some earlier messages that an object in Python is only
| removed or freed from memory when all references to that object have
| been deleted. Is this so?
A Python interpreter *may* delete an object when, but only when, it becomes
inaccessible from the currently running program. What interpreters do
depends on the interpreter.
| If so, is there a way to get all of the references to an object, so
| that they may all be deleted, thus actually deleting the object?
'References' are implementation details, not Python objects. So while in
CPython, sys.getrefcount(ob) returns a count, the meaning of 'get all
references' is not obvious.
So try to create, process, and delete objects as you go, and repeat for the
next, instead of create all, process all, and delete all. For CPython,
look at the gc module.
tjr
More information about the Python-list
mailing list