gc.get_referrers(obj)はオブジェクトの空のリストを返すことができますが、オブジェクトはまだ弱い参照でアクセス可能なはずですか?Pythonオブジェクトには参照元はありませんが、weakrefを介してアクセスできますか?
もし私がこのオブジェクトがガベージコレクションされていない原因を特定しようとすると、どうすれば開始できますか?
編集:コードサンプルがこの場合にどのように役立つかはわかりません - 明らかに強い参照がどこかにありますが、見つけたら気になります。私は、オブジェクトに対する強い参照がすべてget_referrers()によって識別されるという印象を受けました。
編集:解決済み。変数を見つけました。それはゲームのイベントループの中にありましたが、クラス変数ではありませんでしたので、get_referrersはそれを選択しませんでした。
(質問にタグ付けされるように)特定のCPythonの実装を参照している単純なコードの例を与えてください。それ以外の場合は、あなたが意味するものは明確ではありません。弱参照自体がアクセス可能であるか、弱参照を介してアクセス可能な参照オブジェクト自体であるか? – yairchu
どのように参照変数を見つけましたか?私はちょうどそのようなリークを追跡しようとしていますが、間欠的で、gc.get_referrersが[]を返しています。オブジェクトへの「ローカル」参照がどこにあるかを見つける方法はありますか? – papercrane