カーソルを必要とするプログラムの他の部分にカーソルを渡すテキスト編集プログラムがあります。カーソルは 2 つの部分のリストで構成され、[start, end]
テキストが挿入/削除されるたびに更新する必要があります (開始/終了インデックスは前後に移動します)。
カーソルが多すぎて更新に時間がかかるので、使用しなくなったら更新をやめたい。使用されていないということは、それを要求したオブジェクトがそれを参照しなくなったことを意味します-それはもはや気にしません。(たとえば、「bob」という単語のすべての検索結果へのカーソルのリストがあり、「fred」という単語に対して新しい検索が行われたため、結果リストを新しいカーソルの新しいリストに置き換えます。 . 古いリストとそのカーソルは使用されなくなりました。)
カーソルを使用するオブジェクトは、不要に.finished()
なったときにメソッドを呼び出すように要求できます。しかし、エディターの外部から参照されなくなったことを検出できれば、より簡単になります。Pythonでこれを確認するにはどうすればよいですか(ガベージクリーンアップがリストを維持し、参照されなくなったら削除することを知っています)?