python2:创建从HTMLPars继承的抽象基类

2024-04-29 09:55:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在我最新的python2项目(2.7.12)中,我一直在使用HTML解析器。我想创建一个基类,所有的HTML解析器子类都可以从中继承。但是,我也希望这个基类(继承自HTMLParser)是一个抽象基类。在

#!/usr/bin/env python2

import abc
from HTMLParser import HTMLParser


class MyParser(HTMLParser):
    __metaclass__ = abc.ABCMeta

parser = MyParser()

但是,当我尝试运行此文件时,收到以下错误(带有堆栈跟踪):

^{pr2}$

我已经在google上搜索了很多答案,找到了像TypeError: Error when calling the metaclass bases a new-style class can't have only classic bases这样的帖子。但是,那篇文章涉及到我可以创建的新样式的类,而且我还没有找到任何其他描述我特定情况的源代码(即从Python stdlib中的类继承的抽象类)。在

我怀疑python2.7提供的HTMLParser类本身并不是一个新样式的类。如果是这个问题,我能做些什么吗?abc模块是否提供了实现这种配置的方法?在

谢谢,
卡莱布


Tags: 项目import解析器myparserusrhtml样式基类