各 Option インスタンスは、同じ意味を持つ一群のコマンドライン オプション、すなわち同じ意味と効果をもつが、つづりが異なるような オプションを表します。任意の数の短いオプションと長いオプションを 指定することができますが、少なくとも一つのオプション文字列を与え なければなりません。
短い形式のオプション文字列を一つだけもつオプションを定義するには 以下のようにします:
make_option("-f", ...)
長い形式のオプション文字列を一つだけもつオプションを定義するには 以下のようにします:
make_option("--foo", ...)
``...'' は、Option オブジェクトの属性を定義する一群の キーワード引数を表しています。ある Option に対してどのような キーワードを与えれば十分かという問題はかなり複雑です (信じられない というなら、Option の数々の _check_*() メソッド群を 調べてみてください) が、だいたい 何がしか 指定しなければ なりません。うまく指定されていなければ、optparse は OptionError 例外を送出し、犯した間違いを説明してくれます。
オプションの中でもっとも重要な属性はアクション、すなわちコマンドライン 中でそのオプションが見つかったときにどうするかを決める属性です。 とりうるアクションを以下に挙げます:
(アクションを指定しなければ、デフォルト値は ``store'' になります。 このアクションでは、 type と dest キーワードを 与えることができます; 以下を参照してください。)
ご覧のとおり、ほとんどのアクションは何らかの値を保存したり 更新したりする処理を含んでいます。optparse はこの処理の ために、常に特定のオブジェクト(Values クラスのインスタンス) を生成します。オプション引数 (とその他数々の値) は、 make_option()/add_option() の引数 dest (目的変数) に従って、このオブジェクトの属性として保存されます。
例えば、以下の呼び出し:
parser.parse_args()
を行うと、optparse は最初に行うことの一つとして、 values オブジェクトを生成します:
values = Values()
このパーザのオプションの一つが、以下:
make_option("-f", "--file", action="store", type="string", dest="filename")
のように定義されており、解析しているコマンドライン中に以下:
-ffoo -f foo --file=foo --file foo
の文字列が含まれていれば、optparse は -f や --file オプションを見つけた際に、以下のコード:
values.filename = "foo"
と同じ処理を行います。 明らかに、type と dest 引数は (大抵) action と ほぼ同じくらい大事なものです。 action は *全ての* オプションで 意味をなす唯一の属性ですが、最も重要な属性でもあります。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。