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