我有一段代碼在Python中的一個線程內執行的問題。一切工作正常,直到我開始使用超過100條或150線,然後我得到下面的錯誤在幾個線程:python「分配之前引用的本地變量」與數百個線程
resp.read(1)
UnboundLocalError: local variable 'resp' referenced before assignment.
的代碼如下:
try:
resp = self.opener.open(request)
code = 200
except urllib2.HTTPError as e:
code = e.code
#print e.reason,_url
#sys.stdout.flush()
except urllib2.URLError as e:
resp = None
code = None
try:
if code:
# ttfb (time to first byte)
resp.read(1)
ttfb = time.time() - start
# ttlb (time to last byte)
resp.read()
ttlb = time.time() - start
else:
ttfb = 0
ttlb = 0
except httplib.IncompleteRead:
pass
正如你可以,如果「看resp「由於例外而未被分配,它應該引發異常並且」代碼「未被分配,因此它不能輸入」resp.read(1)「。
任何人都有一些線索,說明它失敗了嗎?我想這與範圍有關,但我不知道如何避免這種情況或如何以不同的方式實施。
感謝和問候。
但這不是一個解決方案。我還可以在第二次嘗試中添加除UnboundLocalError之外的其他內容。問題是爲什麼'resp'變量沒有被分配? – dbranco 2013-04-30 14:50:28
然後嘗試合併。我編輯了我的部分,你可以檢查它。 – 2013-04-30 16:40:45