簡體   English   中英

用方法調用python3類

[英]call python3 class with methods

我有一個名為:scrape.py的文件,該文件包含以下類:

我試圖調用我的類BrickSetSpider及其方法,並最終在運行此程序(如python scrape.py時返回parse_page_urls的值。

但是,當我運行python scrape.py ,我得到:

NameError:未定義名稱“響應”

在這條線上:

page = spider.parse_se_page_url(response)

有人可以幫我運行我的兩個方法(輸出g_result_list的結果嗎?

非常感謝!

一些薄:

  • 出現NameError: name 'response' is not defined錯誤的原因NameError: name 'response' is not defined因為在main范圍內沒有定義任何名為response變量的地方。如果沒有定義這樣的參數,就無法使用它。
  • 此外,在parse_se_page_urls您還有一行

     def parse_se_page_urls(self, g_result_page): 

    沒有該功能的任何實現。 也應該是有問題的。

  • 除非缺少所發布代碼中未包含的內容,否則在第二個函數中,您將使用g_result_page變量-但就像未定義響應一樣。 您在上面的函數中有一個具有相同名稱的參數,但是它是該函數的局部變量,因此第二個未知。 要將它們初始化為實例成員,請添加如下構造函數:

     def __init__(self): self.g_result_list = [] self.g_result_page = [] 

    然后用於寫self.g_result_page

  • 在第一個函數中,有以下兩行:

     set(g_result_page) list(g_result_page) 

    這些行無效-它們在g_result_page創建了一個set和一個list ,但是這些數據結構沒有分配任何內容,因此在函數末尾被清除

您的代碼中有兩個小錯誤。

首先,當您獲得該類的實例時,您無需傳遞任何內容,因此您的代碼變為

spider = BrickSetSpider()

其次,通過執行page = spider.parse_page_url(response)來使用變量page來存儲spider.parse_page_url(response)的輸出,但是您隨后調用urls = page.parse_page_urls(result_page) 我相信您的意思是致電urls = spider.parse_page_urls(page)

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM