2

私はStringIOクラスを使用していくつかのテストを書いていますが、疑問に思っています: 実際には IO を模倣しているので、StringIO インスタンスを閉じることができますが、本当に気にする必要がありますか? 実際にファイルを閉じる必要があるため、StringIO インスタンスを閉じる必要がありますか?

4

1 に答える 1

3

読み取りと書き込みは、基になる文字列に直接行われます。フラッシュする余分なバッファーはなく、返す OS レベルのリソースもありません。

StringIO を閉じる必要がある唯一の理由は、後続の IO を失敗させるため、またはclosed?true を返す必要がある場合です。これは、その StringIO を他のコンポーネントに渡した場合に役立ちます。一方、後で StringIO を破棄する場合は、まったく問題ありません。ガベージ コレクターは、それが開いているか閉じているかを気にしません。

于 2012-09-07T21:07:06.873 に答える