编辑:由于 NPE 的评论,概括了这个问题。
在 Python 2.7.3 交互式会话中:
>>> class Foo(object):
... pass
...
>>> type("Bar", (Foo,), {})
<class '__main__.Bar'>
>>> Foo.__subclasses__()
[<class '__main__.Bar'>]
>>>
还:
>>> class Foo(object):
... pass
...
>>> class Bar(Foo):
... pass
...
>>> Foo.__subclasses__()
[<class '__main__.Bar'>]
>>> del Bar
>>> Foo.__subclasses__()
[<class '__main__.Bar'>]
怎么Bar
还能通过__subclasses__
函数获得?我原以为它会被垃圾收集。
相反,如果我希望它被垃圾收集,我该怎么做?