【发布时间】:2015-04-04 06:28:50
【问题描述】:
我试图从基类继承一个变量,但解释器抛出一个错误。
这是我的代码:
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之前调用该函数 -
问题在于,在 LibAccess 的 __init__() 和 url_lib() 中,您将值分配给对象的属性(即类的实例),而不是类.
self.var在 self 的命名空间中创建var(即对象,类 LibAccess 的实例)。您从未创建过这样的对象。你到底想达到什么目的?
标签: python class variables inheritance