我想從基類繼承變量,但解釋器會引發錯誤。使用繼承訪問變量外的類
這裏是我的代碼:
class LibAccess(object):
def __init__(self,url):
self.url = url
def url_lib(self):
self.urllib_data = urllib.request.urlopen(self.url).read()
return self.urllib_data
class Spidering(LibAccess):
def category1(self):
print (self.urllib_data)
scrap = Spidering("http://jabong.com")
scrap.category1()
這是輸出:
Traceback (most recent call last):
File "variable_concat.py", line 16, in <module>
scrap.category1()
File "variable_concat.py", line 12, in category1
print (self.urllib_data)
AttributeError: 'Spidering' object has no attribute 'urllib_data'
什麼是代碼中的問題?
'urllib_data'僅在'url_lib'函數中添加。你可能想在打印'urllib_data'之前調用函數' – thefourtheye 2015-04-04 06:30:51
問題在於,在LibAccess的__init __()和url_lib()中,你正在爲一個對象的屬性(即類的實例)賦值, ,而不是上課。 'self.var'在self的名稱空間(即對象,類LibAccess的實例)中創建'var'。你從來沒有創建過這樣的對象。 你究竟想要達到什麼目的? – Pynchia 2015-04-04 07:37:56