3

ConfigParser初期化にdictを渡すことにより、デフォルト値を設定できます。

config = ConfigParser.ConfigParser({"test": "ok"})

ただし、このデフォルトはインスタンス全体です。セクション1とセクション2のデフォルトをどのように変えることができますか?

4

1 に答える 1

3

オーバーライドされたゲッターを使用して、独自のサブクラスを作成しますか?このようなもの?

class MyConfigParser(ConfigParser):
    my_defaults = {
            'Section 1': 'spam',
            'Section 2': 'eggs',
    }

    def get(self, section, key):
        try:
            return ConfigParser.get(self, section, key)
        except ConfigParser.NoSectionError:
            if section in self.my_defaults:
                self.add_section(section)
                self.set(section, key, self.my_defaults[section])
                return self.my_defaults[section]
            else:
                raise
        except ConfigParser.NoOptionError:
            if section in self.my_defaults:
                self.set(section, key, self.my_defaults[section])
                return self.my_defaults[section]
            else:
                raise
于 2012-10-15T18:07:46.163 に答える