"phil" wrote: > > Python makes no guarantees whatsover about when and how to > > run __del__, so relying on it to remove user-visible resources is a > > rather bad idea.
> What does that mean? Is it a destructor or not? it's a finalizer. most Python implementations do a reasonable attempt to call finalizers on all objects, sooner or later, but it's not guaranteed by the language specification: "It is not guaranteed that __del__() methods are called for objects that still exist when the interpreter exits." > I create thousands of instances of objects in a geometry > instruction program and rely heavliy on __del__ to do its > thing. For instance when I am rotating objects, I delete and > recreate somtimes hundreds of times. Works so far. why do you rely on __del__ to remove your objects? why not just leave that to the garbage collector? (__del__ disables cycle detection, so a program that uses __del__ carelessly is more likely to leak memory than a program that doesn't use it at all). > 2. If Python is an oop language, meaning instances of classes > are essential, then a reliable destructor method is essential. Python is not C++. </F> -- http://mail.python.org/mailman/listinfo/python-list