41

ConfigParserは、Python 用の非常に議論の多いバニラ構成パーサーです。ただし、構成パラメーターを設定する python コードをどこに置く
かは簡単です。import configconfig.py

これら 2 つの構成方法の長所と短所は何ですか? それぞれをいつ選択する必要がありますか?

4

4 に答える 4

31

私が見ている最大の問題は、インポートするとimport configが起こるかわからないということです。はい、スタイル インターフェイスを使用して自然に参照される一連のシンボルを取得します。ただし、構成ファイル内のコードは、誰が何を知っているかを実行することもできます。ここで、ユーザーを完全に信頼しているのであれば、構成ファイルでユーザーが好きなことを何でもできるようにすることは、おそらく良いことです。ただし、数量が不明な場合、またはユーザーを自分自身から保護したい場合は、従来の形式の構成ファイルを使用する方が安全で安全です。.

于 2011-11-09T16:06:34.037 に答える
8

これは、スクリプトのニーズと目標によって異なります。1 つの方法は実際には「より良い」ものではなく、単に異なるだけです。ConfigParserほとんどの pythons 構成パーサー (およびconfigモジュールを含む) に関する非常に詳細な議論については、以下を参照してください。

Python Wiki - ConfigParserShootout

于 2011-11-09T15:58:49.480 に答える
6

「config.py のインポート」は非常にシンプルで柔軟かつ強力ですが、なんでもできるので、config.py が安全な場所にない場合は危険です。

于 2011-11-09T15:57:52.740 に答える
4

IMO 個人のスタイルの問題になります。サードパーティが構成を編集する予定はありますか? ConfigParserもしそうなら、それほど技術的ではなく、ターゲットオーディエンスの頭をあまり超えていない、より「自然な」構成スタイルを持つことが理にかなっているかもしれません.

FabricDjangoなどの多くの人気のあるプロジェクトは、本質的に単なる Python モジュールである「ネイティブ」構成スタイルを使用しています。Fabry には がfabfile.pyあり、Django には がありsettings.pyます。

全体として、モジュールをインポートするネイティブ アプローチを使用することで、柔軟性が大幅に向上します。これは、インポートする別の Python モジュールであるため、関数やクラスの定義など、そのファイルで必要なことを何でも実行できるためです。 .

于 2011-11-09T15:58:43.173 に答える