Pythonオブジェクトがガベージコレクションの候補になる時期を正確に把握しようとしています。私はいくつかのドキュメント/投稿を読みましたが、明確な答えを見つけることができませんでした.
たとえば、次の行を見てください。これが foo への最後の参照です。foo が指すオブジェクトがガベージ コレクションに使用できるのはいつですか?
ret = func(['xyz: ' + foo.name])
(可能な)個々のステップに分解します:
- name への一時参照が作成されます。
- 「xyz:」は名前と連結され、値が返されます。
- リストは新しい文字列で作成されます。
- 関数は新しい配列で呼び出されます。
- 関数が戻ります。
- 結果は ret に割り当てられます。
- 次の命令…
オブジェクトが最初に収集される資格があるのは、どの 2 つのステップの間ですか? オブジェクトへの参照カウントがデクリメントされるのはいつですか?
手順のリストが不完全/不正確な場合もお知らせください。参照する可能性のある回答の共通の出発点を与えるために、それらを列挙しようとしただけです。