2

optparsePython のモジュールを使用して、プログラムでコマンド ライン引数を処理するクラスがあります。また、パラメーターのサブセットを作成するために、いくつかのクラスによって継承されます。add_optionオプションの解析メカニズムをカプセル化するために、関数のみを継承クラスに公開したいと考えています。この関数が行うことは calloptparse.make_optionです。

add_optionドキュメントと同じ引数を受け入れるとメソッドに言ってもらい、引数をandoptparse.make_optionとして転送するのは良い習慣ですか?*args**kwargs

事前にパラメータチェックを行う必要がありますか? ある意味で、これを避けて、そのコードを特定のバージョンのoptparse.

4

2 に答える 2

1

サブクラスにコマンドラインを認識させたいようですが、これはよくない考えです。

プログラムの構成入力部分全体をカプセル化して、コマンドライン、構成ファイル、その他のPythonプログラムなどでドライブできるようにします。

したがって、サブクラスからadd_optionの呼び出しをすべて削除します。

実行時に構成要件がどのように見えるかを知りたい場合は、そのデータをサブクラスに追加するだけです。それぞれに、必要な入力の種類を把握するために使用できるメンバーまたはメソッドを持たせます。

次に、入力オーガナイザークラスにそれらをウォークオーバーさせ、このデータを引き出し、それを使用してコマンドライン、構成ファイル、またはあなたが持っているものを駆動することができます。

しかし、正直なところ、実行時にこれを行う必要はありませんでした。私は通常、すべての構成要素を、「ユーザーがツールに何を伝える必要があるか」という質問に答える独自の個別のものに引き出します。次に、サブクラスは、構成データ構造で必要なものを探します。

于 2009-08-25T14:07:35.420 に答える