Discuss / Python / 做这道题有三点需要注意的

做这道题有三点需要注意的

Topic source

gd83594394

#1 Created at ... [Delete] [Delete and Lock User]

这道题涉及比较多的知识需要额外补充,我尝试做一个小结供跟我一样的小白参考:

1、HTMLParser的handle_starttag(self, tag, attrs)里面的attrs是一个列表list,这点跟XMLParser的start_element(self, name, attrs)的attrs不同,后者的attrs是一个字典dict,这个是需要注意的。

2、在定义类的初始化动作的时候,def __init__(self)里面必须要有HTMLParser.__init__(self),意思是显式调用父类(或者叫基类)的方法和属性,因为python的派生类初始化的时候不会自动调用父类或基类的方法和属性的,如果没有这句,在feed的时候就会出现rawdata错误,说我们自己定义的类没有rawdata属性,这是一个大坑。

3、如果要用到dict,那么必须注意到dict是可变对象,所以在将dict追加到list的时候,必须先将dict转变为str,然后再用eval转化回dict(我这个方法可能比较笨,不知道有没有更好的处理方法)。

  • 1

Reply