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 モジュールから継承しようとしていることです。モジュールではなく、クラスから継承する必要があります。

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