2

Pythonのドキュメントによると;

ソケット。makefile([mode [、bufsize]])
ソケットに関連付けられたファイルオブジェクトを返します。(ファイルオブジェクトについては、ファイルオブジェクトで説明しています。)ファイルオブジェクトは、ソケットファイル記述子のdup()pedバージョンを参照するため、ファイルオブジェクトとソケットオブジェクトを個別に閉じるか、ガベージコレクションすることができます。

このようにソケットとファイルの両方を閉じる必要があるということですか?

conn = socket.create_connection((addr,port))
myfile = conn.makefile()
myfile.close()
conn.close()

または1つを閉じるだけで十分ですか?もしそうなら、私がどちらを閉じ、どちらを閉じないかは重要ですか?

4

1 に答える 1

2

ドキュメントにあるように、両方のオブジェクトは独立しています。基礎となる接続は、関連するすべてのファイル記述子が閉じられている場合にのみ閉じられます。両方を閉じる必要があります。withこのようなリソースを管理するには、ステートメントを使用します。

于 2012-08-30T19:16:38.777 に答える