Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用方法调用python3类_Python_Python 3.x_Class_Methods_Instantiation - Fatal编程技术网

使用方法调用python3类

使用方法调用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的结果)吗 非常感谢

我有一个名为: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
的结果)吗

非常感谢!

几件事:

  • 出现
    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 = []
    
    然后使用write
    self.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 = []
    
    然后使用write
    self.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或其他内容。这都是在ame
      class
      ,只有2个
      方法
      方法2调用方法1@Giliad-它不是来自初始类定义时的类
      BrickSetSpider()
      ?这都在相同的
      class
      ,只有2个
      方法