各々のOption インスタンス、は-f や--file といった同義のコマンドラインオプションからなる集合を表現しています。 一つのOption には任意の数のオプションを短い形式でも長い形式でも 指定できます。ただし、少なくとも一つは指定せねばなりません。
正しい方法でOption インスタンスを生成するには、以降の例でも示すように
make_option() を使います。とはいえ、make_option
やparser.add_option()
も同じ呼び出しシグネチャを備えています:
make_option(opt_str, ..., attr=value, ...) parser.add_option(opt_str, ..., attr=value, ...)
短い形式のオプション文字列を一つだけ持つようなオプションを生成するには:
make_option("-f", attr=value, ...)
また、長い形式のオプション文字列を一つだけ持つようなオプションの定義は:
make_option("--foo", attr=value, ...)
attr=value
キーワード引数では、オプションの属性、すなわち Option
オブジェクトの属性を定義しています。オプションの属性のうちでもっとも重要なのは
action です。action は他のどの属性と関連があるか、そして
どの属性が必要かに大きく作用します。関係のないオプション属性を指定したり、
必要な属性を指定し忘れたりすると、optparse は誤りを解説した
OptionError例外を送出します。
コマンドライン上にあるオプションが見つかったときのoptparse の 振舞いを決定しているのは アクション(action) です。 optparse でハードコードされているアクションには以下のような ものがあります:
store
store_const
store_true
store_false
append
count
callback
(アクションを指定しない場合、デフォルトは store
になります。このアクション
では、 type および dest オプション属性を指定せねばなりません。
下記を参照してください。)
すでにお分かりのように、ほとんどのアクションはどこかに値を保存したり、値を更新
したりします。この目的のために、optparse は常に optparse.Values
の
インスタンスを生成します; ユーザはこのインスタンスを options で参照
します。オプションの引数 (や、その他の様々な値) は、dest (保存先:
destination) オプション属性に従って、optionsの属性として保存されます。
例えば、
parser.parse_args()
を呼び出した場合、optparse はまず options オブジェクト を生成します:
options = Values()
パーザ中で以下のようなオプション
make_option("-f", "--file", action="store", type="string", dest="filename")
が定義されていて、パーズしたコマンドラインに以下のいずれかが入っていた場合:
-ffoo -f foo --file=foo --file foo
optparse は -f か --file オプションを 見つけて、
options.filename = "foo"
type および dest オプション属性は action と同じくらい 重要ですが、全ての オプションで意味をなすのはaction だけなのです。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。