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