Я использую HTMLParser для анализа некоторого базового, хорошо сформированного HTML и по разным причинам не хочу использовать BeautifulSoup. Я подклассифицировал HTMLParser, и фактический парсер отлично работает. Однако метод init_ подкласса не вызывается. Вместо этого, когда я создаю новый объект подкласса, метод init HTMLParser вызывается непосредственно, а подкласс init никогда не вызывается вообще. Это происходит, когда я наследую HTMLParser.HTMLParser, а также от urllib.HTMLParser. Вот код:Подкласс _init_ метод игнорируется - выполнение переходит прямо к суперклассу _init_
class MyHtmlParser(htmllib.HTMLParser):
def _init_(self, formatter):
print("in init")
htmllib.HTMLParser.__init__(self, formatter)
self.links = []
self.is_li = False
self.close_a = False
self.close_li = False
print "initialized"
def get_links(self):
return self.links
def handle_starttag(self, tag, attrs):
#some functionality here - this works
def handle_endtag(self, tag):
#some functionality here - this works
myparser = MyHtmlParser(formatter.NullFormatter)
О, ничего себе. Огромное спасибо. Я никогда не понимал, что это двойной знак подчеркивания. – bsg