Python 调用super初始化报错 "super() argument 1 must be type, not classobj"
在子类中调用super初始化时发生错误:其中FatherClass为超类,仔细检查并无语法错误。
super(FatherClass, self).__init__()TypeError: super() argument 1 must be type, not classobj
原因如下:
在python2.2版本之前,直接调用超类的方法,后来改成通过super来调用,原因是为了解决多重继承中的钻石形状问题。python里的super只能用在新式类中,不能用于以前的经典类,如果基类是经典类则会出现这个错误。
解决的方法是FatherClass只要有一个超类是Object就OK了。
例如: class FatherClass(object):................