[Tutor] Replacement for __del__

David Stanek dstanek at dstanek.com
Tue May 19 17:08:35 CEST 2009


On Tue, May 19, 2009 at 5:55 AM, spir <denis.spir at free.fr> wrote:
> Le Tue, 19 May 2009 09:12:34 +0200,
> "A.T.Hofkamp" <a.t.hofkamp at tue.nl> s'exprima ainsi:
>
>> A folder is created during object instantiation.
>
> Do you mean a filesytem directory? I may be wrong, bit it seems there is a bit of confusion between things and their representation as python objects.
>
> You shouldn't call __del__, id est try to do garbage collection instead of letting python do it. This is for the python object side.

Correct.

> But I think (someone confirms/contradicts?) there is no harm in overloading a class's __del__ to accomplish additional tasks such as deleting temp disk space/dirs/files that need to exist only during object creation.

Incorrect. I usually tell people to never supply a __del__
implementation. By the time it's executed many of the resources that
you want to clean up could have already been garbage collected. To
protect against this I see people doing things like::

def __del__(self):
    try:
        self.f.close()
    except:
        pass

To me this is just silly.

-- 
David
blog: http://www.traceback.org
twitter: http://twitter.com/dstanek


More information about the Tutor mailing list