私の質問を説明するために、使用しない基本的なリクエストを次に示しますcontextlib
。
import urllib.request
url = "http://www.example.com/"
with urllib.request.urlopen(url) as response:
raw_data = response.read()
そして、以下を使用した同じリクエストcontextlib
:
import contextlib
import urllib.request
url = "http://www.example.com/"
with contextlib.closing(urllib.request.urlopen(url)) as response:
raw_data = response.read()
私が知る限り、これら 2 つのリクエストの結果は同じです。データが取得され、コード ブロックの完了時にリクエストが自動的に閉じraw_data
られ、リクエストが閉じられた後でもアクセス可能です。を使用してリクエストを行う場合、使用urllib.request.urlopen
する利点はありcontextlib.closing
ますか、それとも冗長ですか? 1つのアプローチは、よりPythonicおよび/またはより一般的ですか?