HTMLParser中的Python可重写函数

HTMLParser中的Python可重写函数,python,html-parser,Python,Html Parser,我知道如何使用HTMLParser中的handle_starttag,但我很困惑它在引擎盖下是如何工作的 文档说需要重写这个handle_starttag方法,它确实可以按预期工作 但是,当我检查父类(HTMLParser)中的定义时,该定义只不过是一个“pass” 那么如何处理_starttag呢?如果父定义为空,Python如何知道标记是标记而属性是属性? 如果我的问题不清楚,我很乐意进一步澄清。 提前感谢。默认情况下,handle\u starttag不做任何事情。只有在那里才能被覆盖。

我知道如何使用HTMLParser中的handle_starttag,但我很困惑它在引擎盖下是如何工作的

文档说需要重写这个handle_starttag方法,它确实可以按预期工作

但是,当我检查父类(HTMLParser)中的定义时,该定义只不过是一个“pass”

那么如何处理_starttag呢?如果父定义为空,Python如何知道标记是标记而属性是属性? 如果我的问题不清楚,我很乐意进一步澄清。
提前感谢。

默认情况下,
handle\u starttag
不做任何事情。只有在那里才能被覆盖。知道什么是标记,什么是属性并不是handle\u starttag的工作;这是其他代码的工作。默认的
handle\u starttag
作业没有任何内容


调用
handle\u starttag
HTMLParser
询问子类的一种方式,“嘿,你想对我刚才解析的这个开始标记做些什么吗?”?重写的
handle\u starttag
是子类的一种响应方式,“是的,谢谢,我会用start标记做我要做的事情”。如果它没有被覆盖,它什么也不做。无论哪种方式,在调用它之后,解析都会继续进行。

handle\u starttag
在解析过程中,当解析器遇到开始标记时被调用。请参阅调用goahead的feed,调用parse_starttag的feed,调用handle_starttag的feed。@JustinEzequiel:谢谢,现在一切都清楚了,这正好解释了引擎盖下的内容。感谢您的快速响应,我想我没有说清楚。为什么handle_starttag实际上处理开始标记而不是结束标记或其他任何东西?就因为名字的开头是“这是其他代码的工作”,这个代码在哪里?它如何与handle\u starttag交互?@yondchang:Ctrl-F
handle\u starttag
在该文件中,您将看到它。