Pythonコードの実行中にオブジェクトのライフサイクルを追跡する方法はありますか? コールバックを設定するための sys.settrace 関数については知っています。各関数呼び出しまたはコード行で停止できますが、この間に「生きている」オブジェクトにアクセスするにはどうすればよいですか? ソースの停止位置に実際にコードを追加したかのように、各停止後にランダムチェックを実行できるようにプログラムをトレースしたいと思います。
1972 次
1 に答える
2
CPython の gc (ガベージ コレクター) モジュールによって、ある程度の拡張を行うことができます。
ガベージ コレクター object をパラメーターとして使用する関数はほとんどなく、オブジェクトの存在に関する情報を提供できます。
gc.get_referrers(*objs)
gc.get_referents(*objs)
gc.is_tracked(obj)
オブジェクトが存在するかどうかを簡単に確認するには、ここで説明されているように「try」を使用します
于 2014-01-14T16:51:26.450 に答える