6.20.4.2 コールバック関数はどのように呼び出されるか

コールバックは全て以下のようにして呼び出されます:

func(option, opt, value, parser, *args, **kwargs)

ここで、

option
は、このコールバックを呼び出している Option のインスタンス です。

opt
は、コールバック呼び出しのきっかけとなったコマンドライン上の オプション文字列です。(長形式のオプションに対する省略形が使われている 場合、opt は完全な、正式な形のオプション文字列となります -- 例えば、ユーザが --foobar の短縮形として --foo をコマンドラインに入力した時には、opt--foobar となります。)

value
は、このオプションの引数で、コマンドライン上に見つかったものです。 optparse は、type が設定されている場合、 単一の引数しかとりません;value の型はオプションの型 ( 6.20.3, ``オプションの型'' 参照) で示された 型になります。このオプションに対する type が None である (引数はない) 場合、value は None になります。"nargs > 1"なら、 value は適切な型をもつ値のタプルとなります。

parser
は、現在のオプション解析の全てを駆動している OptionParser インスタンスです。主に、この値を介して、インスタンス属性としていくつかの 興味深いデータにアクセスできるために便利です:

parser.rargs
現在未処理の引数からなるリスト、すなわち、opt (と、あれば value ) が除去され、それ以降の引数だけが 残っているリストです。parser.rargs の変更、例えば さらに引数を取り出すといった変更は、自由に行ってかまいません。

parser.largs
現在放置されている引数のセット、すなわち処理はされたが、 オプション (やオプションの引数) として取り出されてはいない 引数のセットです。parser.largs の変更、例えば さらに引数を追加するといった変更は、自由に行ってかまいません。

parser.values
オプションの値がデフォルトで保存されるオブジェクトです。 この値は、コールバック関数がオプションの値を記憶するために、 他のoptparse と同じ機構を使えるようにするので便利です; これでグローバル変数や閉包 (closure) を台無しにすることがありません。 コマンドライン上にすでに現れているオプションの値にアクセスすることも できます。

args
callback_args オプション属性で与えられた任意の固定引数 からなるタプルです。

kwargs
callback_args オプション属性で与えられた任意のキーワード引数 からなるタプルです。

argskwargs は省略可能 (callback_argscallback_kwargs をコールバック定義の際に与えたときのみ 渡されます) なので、最小のコールバック関数定義は以下のようになります:

def my_callback (option, opt, value, parser):
    pass

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。