Max Yuzhakov wrote: > It is correct behaviour for python to call __del__ on some > identity of a class object more than once?
Not with the code which you gave as an example, but in the general case yes, the only guarantee that Python gives about the __del__ method on an instance is that it will be called zero, one or more than one times during the run of the program. In practice there are various situations where __del__ will not be called, but it is only called multiple times if you resurrect the object during a call to __del__. The output from your stat function could, of course, also be generated by creating and destroying lots of foo objects in another thread. If a foo was both created and destroyed between the first two print statements, and another one was created and destroyed in the middle of the evaluation of the last print statement then you could see the output you described without any multiple __del__ calls in the same object. You should post a working code sample which generates your output if you want a more useful answer. -- http://mail.python.org/mailman/listinfo/python-list