Python 2.0

Greg Ewing greg.ewing at compaq.com
Thu Jun 10 20:02:27 EDT 1999


Tim Peters wrote:
> 
> "Therefore, we recommend that the design of finalize methods be kept simple
> and that they be programmed defensively, so that they will work in all
> cases."

In my experience, this advice applies just as much to Python
__del__ methods, their alleged greater predictability
notwithstanding. 

The only times I can recall using __del__
methods were in shadow classes which needed to free resources
in an extension module. I found that I had to program them
very defensively, because when the interpreter shut down,
it would dismantle the contents of my modules in a random
order, causing my __del__ methods to crash if I wasn't
careful.

So I regard the environment of a __del__ method as
pretty much unknowable as well!

Greg




More information about the Python-list mailing list