Why this ref leak?
Peter Otten
__peter__ at web.de
Wed Feb 27 08:12:57 EST 2008
Peter Otten wrote:
>> Both Python 2.4 and 2.5 don't clean up properly here. Why is this?
>> Aren't classes supposed to be garbage-collected?
>
> The reference keeping the classes alive is probably
> object.__subclasses__():
>
>>>> class A(object): pass
> ...
>>>> sum(1 for c in object.__subclasses__() if c.__name__ == "A")
> 1
>>>> class A(object): pass
> ...
>>>> sum(1 for c in object.__subclasses__() if c.__name__ == "A")
> 2
Oops, wrong guess:
>>> import gc
>>> gc.collect()
6
>>> sum(1 for c in object.__subclasses__() if c.__name__ == "A")
1
Peter
More information about the Python-list
mailing list