Я пытаюсь наследовать переменную из базового класса, но интерпретатор выдает ошибку.Доступ к переменному внешнему классу с использованием наследования
Вот мой код:
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
, проблема заключается в том, что в LibAccess '__init __() и url_lib() вы присваиваете значение атрибуту объекта (то есть и экземпляру класса) , а не классу. 'self.var' создает' var' в пространстве имен self (т. е. объект, экземпляр класса LibAccess). Вы никогда не создавали такой объект. Что именно вы пытаетесь достичь? – Pynchia