callbackオプションを最も簡単に定義するには、
parser.add_option()
メソッドを使います。
action の他に指定しなければならない属性は callback
、
すなわちコールバックする関数自体です:
parser.add_option("-c", action="callback", callback=my_callback)
callback
は関数 (または呼び出し可能オブジェクト)なので、callback
オプションを定義する時にはあらかじめ my_callback()
を定義しておかねば
なりません。この単純なケースでは、optparse は -c が
何らかの引数をとるかどうか判別できず、通常は-c が引数を
伴わないことを意味します -- 知りたいことはただ単に -c がコマンドライン上に
現れたどうかだけです。とはいえ、場合によっては、自分のコールバック関数に
任意の個数のコマンドライン引数を消費させたいこともあるでしょう。これがコールバック関数
をトリッキーなものにしています; これについてはこの節の後の方で説明します。
optparse は常に四つの引数をコールバックに渡し、その他には
callback_args
および callback_kwargs
で指定した
追加引数しか渡しません。従って、最小のコールバック関数シグネチャは:
def my_callback(option, opt, value, parser):
コールバックの四つの引数については後で説明します。
callback オプションを定義する場合には、他にもいくつかオプション属性を 指定できます:
store
や append
アクションの時と同じく、
この属性はoptparseに引数を一つ消費して、type に指定した
型に変換させます。optparse は変換後の値をどこかに保存する代わりに
コールバック関数に渡します。
nargs
nargs
> 1 である場合、 optparse
はnargs
個の引数を消費します。このとき各引数は type
型に変換できねばなりません。変換後の値はタプルとしてコールバックに渡されます。
callback_args
callback_kwargs
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。