【发布时间】:2019-03-18 06:25:58
【问题描述】:
我计划验证我的 Python 3.6 代码是否有任何循环引用。
给定一个对象,get_referrers https://docs.python.org/3/library/gc.html#gc.get_referrers 返回引用该对象的所有对象。但是,以下返回 []
[o for o in gc.get_objects() if not bool(gc.get_referrers(o))]
这意味着所有对象都至少有一个引用者。
我还发现https://mg.pov.lt/objgraph/objgraph.html#objgraph.is_proper_module 使用模块作为根。
[o for o in gc.get_objects() if objgraph.is_proper_module(o)]
虽然模块仍然可以相互引用...这是找到根的正确方法吗?
【问题讨论】:
标签: python garbage-collection objgraph