首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python 调用super初始化报错 "super() argument 一 must be type, not classobj"

2013-11-02 
Python 调用super初始化报错 super() argument 1 must be type, not classobj在子类中调用super初始化时

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




热点排行