###
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 オプション属性で与えられた任意のキーワード引数 からなるタプルです。

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

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