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 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com