我试图从基类继承变量,但是解释器抛出错误。
这是我的代码:
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'
代码有什么问题?
答案 0 :(得分:0)
在访问之前,您需要定义self.urllib_data
。简单的方法是在初始化期间创建它,例如
class LibAccess(object):
def __init__(self,url):
self.url = url
self.urllib_data = None
这样,每次尝试访问它时都可以确保它存在。从您的代码中我认为您不希望在初始化期间获取实际数据。或者,您可以从self.url_lib()
致电__init__(..)
以便首次阅读数据。稍后更新它将以与以前相同的方式完成。