[ python-Bugs-1513802 ] __del__: Type is cleared before instances

SourceForge.net noreply at sourceforge.net
Thu Jun 29 23:29:01 CEST 2006


Bugs item #1513802, was opened at 2006-06-28 07:41
Message generated for change (Comment added) made by arigo
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1513802&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Interpreter Core
Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: Arun (arunarunarun)
Assigned to: Nobody/Anonymous (nobody)
Summary: __del__: Type is cleared before instances

Initial Comment:
[Python n00b alert]

I'm trying this little script, and I see an exception like:

Exception exceptions.AttributeError: "'NoneType' object
has no attribute 'refcount'" in <bound method
Shape.__del__ of Line> ignored

If I change the variable name 's1' to something like
's4', I don't see this exception. Also, if I manually
delete the object before the script ends, the exception
does not occur.

Seems that class Shape is destroyed before all it's
objects are destroyed. Is this acceptable?

----------------------------------------------------------------------

>Comment By: Armin Rigo (arigo)
Date: 2006-06-29 21:29

Message:
Logged In: YES 
user_id=4771

It is not the type object that is cleared, it is the global
names of the module.  They are replaced with None when the
interpreter shuts down, which is why the expression
'Shape.refcount' find None under the name 'Shape'.  It's an
obscure leftover for historical reasons.  I'm not sure why
the problem somes bites and sometimes not.  A workaround is
to avoid reading globals from __del__() methods; e.g. use
self.__class__.refcount instead of Shape.refcount...

(This of course doesn't excuse the fact that this is a
long-standing bug.)

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1513802&group_id=5470


More information about the Python-bugs-list mailing list