Python-未定义变量,但我认为它是

Python-未定义变量,但我认为它是,python,eclipse,pydev,Python,Eclipse,Pydev,我从Internet存档中提取图像,作为对一些python代码的测试,并合并了请求模块。我的代码如下:(注意,不是全部代码,只是相关部分) 当我运行代码时,会收到以下消息: Traceback (most recent call last): File "C:\eclipse-workspace\test\tabbedPage.py", line 136, in OnSearch if "image" in response.headers['content-type']: NameError:

我从Internet存档中提取图像,作为对一些python代码的测试,并合并了请求模块。我的代码如下:(注意,不是全部代码,只是相关部分)

当我运行代码时,会收到以下消息:

Traceback (most recent call last):
File "C:\eclipse-workspace\test\tabbedPage.py", line 136, in OnSearch
if "image" in response.headers['content-type']:
NameError: name 'response' is not defined
但响应是在try语句中定义的——或者我认为是这样。它只在if“图像”部分抱怨-为什么

我是python新手,我在Eclipse中使用python3.6和pydev。
谢谢

这是因为您正在try块中声明响应。如果抛出异常,则不会声明响应


解决方法是将依赖于声明响应的代码放入try块。

try中的某些内容失败。除非捕获到错误,否则它将处理错误,但由于没有上升,它将继续执行,但未设置响应。

如果
try
块失败,则不会为后续代码定义
response
。您需要在try/except之前或在exception块中定义一些默认值。。。。或者1)重新引发异常,以便停止执行;2) 由于您记录了故障,请在except Suitere中添加一条return语句。根据
response
的值,后续的代码很多。把所有东西都扔进
try
,尤其是用毯子,可能会隐藏很多问题。这是真的。不太清楚他的代码试图做什么,只是试图引导他进入正确的方向。你可以在异常中定义
response=None
,如果response不是None,则定义
,并在响应中使用“image”。例如,标题['content-type]:
。这就是解决方案!我将响应移出了try,它成功了。得到一些其他的错误,但至少我的程序走得更远。谢谢你的帮助!
Traceback (most recent call last):
File "C:\eclipse-workspace\test\tabbedPage.py", line 136, in OnSearch
if "image" in response.headers['content-type']:
NameError: name 'response' is not defined