使用inheritan访问类外的变量

2024-09-21 11:34:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从基类继承一个变量,但是解释器抛出了一个错误。你知道吗

这是我的密码:

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'

代码有什么问题?你知道吗


Tags: selfurldataobjectdefurllibvariableclass
1条回答
网友
1楼 · 发布于 2024-09-21 11:34:46

您需要在访问它之前定义self.urllib_data。最简单的方法是在初始化期间创建它,例如

class LibAccess(object):
    def __init__(self,url):
        self.url = url
        self.urllib_data = None

这样,每次尝试访问它时,都可以确保它存在。从您的代码中,我认为您不希望在初始化期间获得实际数据。或者,您可以从__init__(..)调用self.url_lib()来第一次读取数据。稍后将以与以前相同的方式进行更新。你知道吗

相关问题 更多 >

    热门问题