このエラーはランダムに表示されます。これは、return ステートメントが呼び出す前に infoGotten 変数が初期化されていないことが原因であると確信しています。私が困惑した部分は、コードのその部分に到達して最初にそのエラーを生成する方法です。うまくいけば、私はまだそれを理解することができなかったので、それがなぜなのかを誰かが説明してくれることを願っています. try/except ステートメントが原因だと推測していますが、マニュアルで 7.4 を検索して確認しましたが、(とにかく) 何か間違ったことをしているようには見えません。
breakLoop = 0
def get_item_info(linkParameters):
global breakLoop
nheaders = {'User-Agent' : 'Firefox/15.0.1'}
purl = 'http://example.com/something.php'
pd = linkParameters
nreq = urllib.request.Request(purl, pd, nheaders)
if breakLoop >= 4:
return 'Request timed out {} times'.format(breakLoop)
try:
nresponse = urllib.request.urlopen(nreq)
except urllib.error.URLError:
breakLoop += 1
get_item_info(pd)
except urllib.error.HTTPError:
breakLoop += 1
get_item_info(pd)
else:
infoGotten = nresponse.read()
return infoGotten
ありがとう!