以下使用super()引发了一个TypeError:为什么?
>>> from HTMLParser import HTMLParser
>>> class TextParser(HTMLParser):
... def __init__(self):
... super(TextParser, self).__init__()
... self.all_data = []
...
>>> TextParser()
(...)
TypeError: must be type, not classobj
Run Code Online (Sandbox Code Playgroud)
StackOverflow上有一个类似的问题:Python super()引发TypeError,其中错误的解释是用户类不是新式类.但是,上面的类是一个新式的类,因为它继承自object:
>>> isinstance(HTMLParser(), object)
True
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我怎么用super(),在这里?
使用HTMLParser.__init__(self)而不是super(TextParser, self).__init__()工作,但我想了解TypeError.
PS:Joachim指出,作为一个新式的实例并不等同于一个object.我多次反复阅读,因此我的困惑(基于object实例测试的新式类实例测试示例:https://stackoverflow.com/revisions/2655651/3).