Ошибка в ООП Python
Есть некий класс и внутри него есть функция (get_html) и при попытке обратиться к какой либо переменной(HEADERS) выдает ошибку что нету такого класса.
class main_pars:
HEADERS = {
'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0',
"accept": "text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8"
}
def get_html(url: str, params=' '):
return requests.get(url, headers = main_pars.HEADERS, params=params)
Ответы (1 шт):
Автор решения: rotabor
→ Ссылка
А так:
class main_pars:
HEADERS = {
'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0',
"accept": "text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8"
}
def get_html(self, url: str, params=' '):
return requests.get(url, headers = self.HEADERS, params=params)
В большинстве ЯП использование члена с именем класса означает, что этот член статический, но член HEADERS не объявлен как статический.
Для проверки работы из get_html просто возвращаю HEADERS:
class main_pars:
HEADERS = {
'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0',
"accept": "text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8"
}
def get_html(self):
return self.HEADERS
a = main_pars()
print( a.get_html())
Результат:
{'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0', 'accept': 'text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8'}