Why this ref leak?

Gerhard Häring gh at ghaering.de
Wed Feb 27 13:19:16 CET 2008


import sys

def foo():
     class C(object):
         pass

foo()
print ">>", sys.gettotalrefcount()
foo()
print ">>", sys.gettotalrefcount()
foo()
print ">>", sys.gettotalrefcount()

 >> 21366
 >> 21387
 >> 21408
[9779 refs]

Both Python 2.4 and 2.5 don't clean up properly here. Why is this? 
Aren't classes supposed to be garbage-collected?

-- Gerhard



More information about the Python-list mailing list