Python におけるファイルのclose について (https://teratail.com/questions/39109)が、最終的に
「素直に with 等を使って close() させるようにコーディングします。」
という結論になっていたのですが、以下の疑問が浮かびました:
with を使えば変数スコープが絞られるため、withブロックを抜ける際に with_item に記載された変数に格納されたオブジェクトがガーベージコレクト対象になる、というのは理解できます。
ガーベージコレクタが参照カウント方式であれば、その時点で即座に解放されるのかと思いますが、
ガーベージコレクタが参照カウンタ方式とは異なる方式 (マークアンドスイープ方式?) である場合でも、withではその時点で即座に開放されることは保証されているのでしょうか。
もしその保証がないなら、冒頭の質問において、withだろうが関数だろうが違いはないのかなーと思いまして。
[参照したもの]

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/28 01:59 編集