1

このプロジェクトで喜んで使用しようとしている configobj についていくつか質問があります。

最初の質問は、非常に長いリストを作成するにはどうすればよいかということです。spec ファイルで宣言したとします。

val = string_list

今、私は val = one, two, three をしたいと思います

しかし、それは許可されていません。

val = one, \
  two, \
  three

動作しません。すべてを 1 行で記述しないようにする方法はありますか?

2 番目の質問は、デフォルト値を 2 回宣言しないようにするにはどうすればよいかということです。

たとえば、次の仕様があるとします。

skip_pesky_pyc_paths = string_list

私はそれを当然のこととして与えていました(疑似コード先)

conf = ConfigObj(spec=myspec)
conf['skip_pesky_pyc_paths'] == []

しかし、そうではありません.confファイルで宣言されていない場合、キーが見つからないだけですか? 仕様から宣言されていないときにキーを作成する魔法のオプションはありますか?

代わりに YAML を使用することも 1 つの方法かもしれませんが、検証に関しては、私が見る限り、ConfigObj の方が優れているように見えます。

4

1 に答える 1

3

質問の2番目の部分については、正しく理解できているかどうかわかりませんが、構成ファイルに存在しない値のデフォルトを設定する方法を尋ねている場合は、次のことができます

skip_pesky_pyc_paths = string_list(default=list())

検証ファイルで。skip_pesky_pyc_pathsが構成ファイルに存在しない場合は、 が返され[]ます。

また、あなたは言う

今、私は val = one, two, three をしたいと思います

しかし、実際にはこれはうまく機能します。私はちょうどそれをテストしました。リストの個々の値を別々の行に配置しても機能しないことは事実です。

于 2012-12-19T20:18:56.040 に答える