python - 查找泄漏对象

我有一个很大的 python 代码库。

在某一时刻,我发现(使用guppy但这并不重要)我有一个现有的类实例BigClass

在代码的这一点上,我不希望有任何活着的实例,BigClass因为它们都应该被释放。我尝试打电话gc.collect()

我如何追踪这个实例在哪里,为什么它还活着,它的属性等等?


小怪兽爱吃肉
浏览 84回答 1
1回答

江户川乱折腾

您可以找到该类的所有实例: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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python