读书人

Python 调用super初始化报错 quot;super()

发布时间: 2013-11-02 19:41:10 作者: rapoo

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):................




读书人网 >perl python

热点推荐