Bugs item #1553819, was opened at 2006-09-07 04:26 Message generated for change (Comment added) made by mwh You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1553819&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: Peter Donis (peterdonis) Assigned to: Nobody/Anonymous (nobody) Summary: Class instance apparently not destructed when expected Initial Comment: When an instance variable of a class with the same name as a class variable in a base class is assigned a value (making the class variable of the base class invisible), the class instance does not appear to be destructed when it should. Here is the simplest test script I've been able to come up with that reproduces the error, along with its output when run from a shell prompt. I've included the dir() commands to make sure that the variable referencing the class instance is in fact deleted in both cases. As you can see, the instance of the base class gets destructed as expected, but the instance of the derived class does not. --- Test script --- #!/usr/bin/env python # Test script to see when objects are freed class Test(object): testfield = None def __init__(self): print "Initializing test object." def __del__(self): print "Freeing test object." class Test2(Test): def __init__(self): # This masks Test.testfield self.testfield = self.meth Test.__init__(self) def meth(self): pass print dir() t = Test() print dir() del t print dir() t2 = Test2() print dir() del t2 print dir() --- Output --- $ python deltest.py ['Test', 'Test2', '__builtins__', '__doc__', '__file__', '__name__', 'func'] Initializing test object. ['Test', 'Test2', '__builtins__', '__doc__', '__file__', '__name__', 'func', 't'] Freeing test object. ['Test', 'Test2', '__builtins__', '__doc__', '__file__', '__name__', 'func'] Initializing test object. ['Test', 'Test2', '__builtins__', '__doc__', '__file__', '__name__', 'func', 't2'] ['Test', 'Test2', '__builtins__', '__doc__', '__file__', '__name__', 'func'] ---------------------------------------------------------------------- >Comment By: Michael Hudson (mwh) Date: 2006-09-07 15:06 Message: Logged In: YES user_id=6656 It's a reference cycle featuring an object with a __del__ --> it ends up in gc.garbage. More coffee for Neal? ---------------------------------------------------------------------- Comment By: Neal Norwitz (nnorwitz) Date: 2006-09-07 08:19 Message: Logged In: YES user_id=33168 The attached variant puts this into a function and shows ref leaks. It requires a debug build. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1553819&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com