[英]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.