On Mon, 2003-12-15 at 07:34, Dieter Maurer wrote:
I don't think it makes a lot of sense to put an __del__ method on a Persistent object.
I just read in "cPersistence.c:ghostify":
/* We remove the reference to the just ghosted object that the ring * holds. Note that the dictionary of oids->objects has an uncounted * reference, so if the ring's reference was the only one, this frees * the ghost object. Note further that the object's dealloc knows to * inform the dictionary that it is going away. */
This means: *all* persistent objects have a special "dealloc" function. Hope, this "dealloc" function plays well with the cyclic garbage collector.
All Python objects have a "dealloc" function -- whatever is in the tp_dealloc slot. The tp_dealloc function at the C level is completely different from an __del__ method at the Python level. Jeremy