gc.get_referrers(obj)应该可以为对象返回一个空列表,但该对象仍然可以通过弱引用访问?Python对象没有引用,但仍然可以通过weakref访问吗?
如果是这样,我将如何开始尝试确定此对象未被垃圾收集的原因?
编辑:我不确定代码示例在这种情况下究竟有多大帮助 - 在某处显然有强烈的引用,但是如果我能找到它,我会被诅咒的。我的印象是,所有对象的强引用都将由get_referrers()来标识。
编辑:已解决。我发现这个变量有一个很强的参考 - 它在游戏事件循环中,但不是一个类变量,所以get_referrers没有选择它。
请举一个简单的代码示例。否则不清楚你的意思。是弱引用本身可访问还是被引用的对象本身可以通过weakref访问? – yairchu 2009-07-14 20:35:51
你是如何找到参考变量的?我试图追踪这样一个泄漏,但它是间歇性的,gc.get_referrers返回[]。有没有办法找到对象的“本地”引用? – papercrane 2013-04-04 20:43:16