from ConfigParser import ConfigParserclass MyParser(ConfigParser): def __init__(self,cpath): super(MyParser,self).__init__() self.configpath = cpath self.read(self.configpath)
它失败了:
TypeError: must be type,not classobj
在super()行.
解决方法 很可能是因为ConfigParser不从对象继承,因此,不是 new-style class.这就是为什么超级不能在那里工作的原因.检查ConfigParser定义并验证它是否是这样的:
class ConfigParser(object): # or inherit from some class who inherit from object
如果没有,那就是问题所在.
我对你的代码的建议不是使用super.只需在ConfigParser上直接调用self,就像这样:
class MyParser(ConfigParser): def __init__(self,cpath): ConfigParser.__init__(self) self.configpath = cpath self.read(self.configpath)总结
以上是内存溢出为你收集整理的在python 2.7中扩展类,使用super()全部内容,希望文章能够帮你解决在python 2.7中扩展类,使用super()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)