概述
我没有查看HTMLParser模块本身,但我可以看到feed固有地调用handle_data,它在派生类中执行打印. @ ron的回答建议将数据直接传递给你的函数,这完全没问题.但是,由于您是OOP的新手,可以查看此代码.
这是Python,2.x,但我认为唯一可以改变的是包位置,html.parser而不是HTMLParser.
from HTMLParser import HTMLParser
class MyParser(HTMLParser):
def handle_data(self, data):
self.output.append(data)
def feed(self, data):
self.output = []
HTMLParser.feed(self, data)
p = MyParser()
page = """
title
I'm a paragraph!
"""p.feed(page)
print p.output
output
['title', "I'm a paragraph!"]
在这里,我将重写HTMLParser的feed方法.相反,当调用p.feed(页面)时,它将调用我的方法,该方法创建/设置一个名为output的实例变量到一个空列表,然后调用基类中的feed方法(HTMLParser)并继续它的内容通常会.因此,通过重写feed方法,我可以做一些额外的事情(添加一个新的输出变量). handle_data方法类似地是覆盖方法.事实上,HTMLParser的handle_data方法甚至没有做任何事情……根本没有(根据文档.)
所以,只是为了澄清……
你调用p.feed(页面)调用MyParser.feed方法
MyParser.feed将变量self.output设置为空列表,然后调用HTMLParser.feed
handle_data方法将行添加到输出列表的末尾.
您现在可以通过调用p.output来访问数据.
最后
以上就是紧张小懒猪为你收集整理的html怎么从类中调取数据,如何从类(在HTMLParser中)将数据传递给另一个函数?title的全部内容,希望文章能够帮你解决html怎么从类中调取数据,如何从类(在HTMLParser中)将数据传递给另一个函数?title所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复