Python call super constructor
本问题已经有最佳答案,请猛点这里访问。
我正在使用模块htmlparser并希望生成一个子类。但是我不能调用超级构造函数,我做错了什么?
1 2 3 4 | class CustomParser(HTMLParser): def __init__(self): super(CustomParser, self).__init__() |
Stacktrace:
1 2 3 4 5 6 7 8 | Traceback (most recent call last): File"C:\Users\Marc\Phyton afafafaf\src\test.py", line 20, in <module> C = CustomParser() File"C:\Users\Marc\Phyton afafafaf\src\test.py", line 17, in __init__ super(CustomParser, self).__init__() TypeError: must be type, not classobj |
正如错误消息所说,
1 2 3 | class CustomParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) |
试试这个:
1 2 3 | class CustomParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) |
或者:
1 2 3 | class CustomParser(HTMLParser, object): def __init__(self): super(CustomParser, self).__init__(self) |
细节:https://stackoverflow.com/a/9719731/320104