0

所以我正在尝试创建一个已经在文件中读取并具有 configparser 的所有功能以及更多功能的类。代码如下所示:

import configparser
class dkconfig(configparser):
    def __init__(self):
        self.clusterini = os.path.abspath("..\\cluster.ini")
        super(dkconfig,self).__init__(allow_no_value=True)
        if os.path.exists(self.clusterini):
            self.read(self.clusterini)


    def getHostnames(self):
        hostnames = {}
        for sec in self.config.sections():
            if sec.startswith("node"):
                hostnames[sec] = self.config.get(sec, "hostname")
        return hostnames

它从另一个脚本中调用,如下所示:

config = dkconfig()
names = config.getHostnames()
opts = config.options("node1")

错误说:TypeError: module.__init__() takes at most 2 arguments (3 given)我错过了什么,我怎样才能让“dkconfig”对象的所有实例在构造过程中都已经读入了“cluster.ini”文件?

4

1 回答 1

3

好吧,错误的直接原因是您试图从configparser module继承。您需要从继承,而不是模块。

class dkconfig(configparser.ConfigParser):
    # ....
于 2012-09-26T21:26:01.733 回答