在python 2.7中扩展类,使用super()

在python 2.7中扩展类,使用super(),第1张

概述也许这是一个愚蠢的问题,但为什么这个代码在 python 2.7中不起作用? from ConfigParser import ConfigParserclass MyParser(ConfigParser): def __init__(self, cpath): super(MyParser, self).__init__() self.configp 也许这是一个愚蠢的问题,但为什么这个代码在 python 2.7中不起作用?

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()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存