我有一个很大的python代码库。
有一次,我发现(使用guppy
,但这并不重要(我有一个类BigClass
的现有实例。
在代码的这一点上,我不希望有任何BigClass
的活动实例,因为它们都应该发布。我试着呼叫gc.collect()
我如何追踪这个实例在哪里,为什么它还活着,它的属性等等?
您可以找到该类的所有实例:
for obj in gc.get_objects():
if isinstance(obj, BigClass):
# DEBUG IT
用于调试实际对象以及如何引用它们:
for ref in gc.get_referrers(obj):
# Should probably filter here to reduce the amount of data printed and avoid printing locals() as well
print(ref)