使用方法调用python3类
我有一个名为:scrape.py的文件。该文件包含以下类: 我试图调用我的类使用方法调用python3类,python,python-3.x,class,methods,instantiation,Python,Python 3.x,Class,Methods,Instantiation,我有一个名为:scrape.py的文件。该文件包含以下类: 我试图调用我的类BrickSetSpider,以及它的方法,并在像python scrape.py那样运行这个程序时最终返回parse\u page\u url的值 但是,当我运行python scrap.py时,我得到: NameError:未定义名称“响应” 在这一行: page = spider.parse_se_page_url(response) 有人能帮我运行我的两个方法(输出g_result_list的结果)吗 非常感谢
BrickSetSpider
,以及它的方法,并在像python scrape.py那样运行这个程序时最终返回parse\u page\u url
的值
但是,当我运行python scrap.py
时,我得到:
NameError:未定义名称“响应”
在这一行:
page = spider.parse_se_page_url(response)
有人能帮我运行我的两个方法(输出g_result_list
的结果)吗
非常感谢!几件事:
- 出现
name错误的原因是:未定义名称“response”
,因为在main范围内没有定义任何名为response的变量
如果不定义这样的参数,就不能使用它
- 此外,在
parse_se_页面\u url
中还有一行
def parse_se_page_urls(self, g_result_page):
没有任何函数的实现。也应该是有问题的
- 除非缺少发布的代码中没有的内容,否则在第二个函数中,您使用的是
g_result_page
变量,但与响应一样,它没有定义。
您在上面的函数中有一个同名的参数,但它是该函数的局部变量,因此第二个函数未知。要将它们初始化为实例的成员,请按如下方式添加构造函数:
def __init__(self):
self.g_result_list = []
self.g_result_page = []
然后使用writeself.g_result_页面
- 在第一个函数中,有以下两行:
set(g_result_page)
list(g_result_page)
这些行无效-它们在g_结果_页面
中创建集合
和列表
,但这些数据结构没有分配给任何对象,因此在函数结束时被清除
几样东西:
- 出现
name错误的原因是:未定义名称“response”
,因为在main范围内没有定义任何名为response的变量
如果不定义这样的参数,就不能使用它
- 此外,在
parse_se_页面\u url
中还有一行
def parse_se_page_urls(self, g_result_page):
没有任何函数的实现。也应该是有问题的
- 除非缺少发布的代码中没有的内容,否则在第二个函数中,您使用的是
g_result_page
变量,但与响应一样,它没有定义。
您在上面的函数中有一个同名的参数,但它是该函数的局部变量,因此第二个函数未知。要将它们初始化为实例的成员,请按如下方式添加构造函数:
def __init__(self):
self.g_result_list = []
self.g_result_page = []
然后使用writeself.g_result_页面
- 在第一个函数中,有以下两行:
set(g_result_page)
list(g_result_page)
这些行无效-它们在g_结果_页面
中创建集合
和列表
,但这些数据结构没有分配给任何对象,因此在函数结束时被清除
您的代码中有两个小错误
首先,当你得到一个类的实例时,你不需要传入任何东西,所以你的代码就变成了
spider = BrickSetSpider()
其次,您使用变量page
来存储spider.parse\u page\u url(response)
的输出,方法是执行page=spider.parse\u page\u url(response)
,然后调用url=page.parse\u page\u url(result\u page)
。我相信您的意思是调用url=spider.parse\u page\u url(page)
希望这有帮助。代码中有两个小错误
首先,当你得到一个类的实例时,你不需要传入任何东西,所以你的代码就变成了
spider = BrickSetSpider()
其次,您使用变量page
来存储spider.parse\u page\u url(response)
的输出,方法是执行page=spider.parse\u page\u url(response)
,然后调用url=page.parse\u page\u url(result\u page)
。我相信您的意思是调用url=spider.parse\u page\u url(page)
希望这有帮助。你是说我应该保留page
var,但删除url
var,而只使用page.parse\u page\u url的内容(page
?不幸的是,在page
var行,我在运行python scrape.py
时遇到了这个错误:NameError:name'response'没有定义
是的,如果你要刮一个页面,你首先需要刮一个页面,不是吗?你需要弄清楚你的parse\u page\u url()是什么类型的数据)
函数需要,以及如何获得它。我们需要查看该函数的代码来帮助您实现这一点。我更新了方法的代码,我遇到了一个问题。简单的回答是,您从来没有说过响应是什么。您不能指望它神奇地向您询问url或其他内容。您是说我知道吗uld保留page
var,但删除url
var,而只使用其page.parse\u page\u url的内容(page
?不幸的是,在page
var行,我在运行python scrape.py
时遇到了这个错误:NameError:name'response'没有定义
是的,如果你要刮一个页面,你首先需要刮一个页面,不是吗?你需要弄清楚你的parse\u page\u url()是什么类型的数据)
函数需要,以及如何获得它。我们需要查看该函数的代码来帮助您实现这一点。我更新了方法的代码,我遇到了一个问题。简单的回答是,您从未说过响应是什么。您不能期望它神奇地向您请求url或其他内容。这都是在ameclass
,只有2个方法
方法2调用方法1@Giliad-它不是来自初始类定义时的类BrickSetSpider()
?这都在相同的class
,只有2个方法