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

コールバックは全て以下の形式で呼び出されます:

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

ここで、

`option`
  コールバックを呼び出している `Option` のインスタンスです。
`opt_str`
  は、コールバック呼び出しのきっかけとなったコマンドライン上のオプション文字列です。 (長い形式のオプションに対する省略形が使われている場合、opt は完全な、 正式な形のオプション文字列となります -- 例えば、ユーザが --foobar の短縮形として `"-foo"` をコマンドラインに入力した時には、opt_str は `"-foobar"` となります。)
`value`
  オプションの引数で、コマンドライン上に見つかったものです。 `optparse` は、`type` が設定されている場合、 単一の引数しかとりません;`value` の型はオプションの型 として指定された型になります。このオプションに対する `type` が None である(引数なしの) 場合、value は None になります。 "`nargs`" > 1 であれば、`value` は は適切な型をもつ値のタプルになります。
`parser`
  現在のオプション解析の全てを駆動している `OptionParser` インスタンスです。この変数が有用なのは、この値を介してインスタンス属性と していくつかの興味深いデータにアクセスできるからです:
  `parser.largs`
    現在放置されている引数、すなわち、すでに消費されたものの、オプションでも オプション引数でもない引数からなるリストです。 `parser.largs` は自由に変更でき、 たとえば引数を追加したりできます (このリストは `args` 、すなわち `parse_args()` の二つ目の戻り値になります)
  `parser.rargs`
    現在残っている引数、すなわち、 `opt_str` および `value` があれば除き、それ以外の引数が残っているリストです。 `parser.rargs` は自由に変更でき、例えばさらに引数を消費したり できます。
  `parser.values`
    オプションの値がデフォルトで保存されるオブジェクト (`optparse.OptionValues` のインスタンス) です。この値を使うと、コールバック関数がオプションの値を記憶するために、 他の`optparse` と同じ機構を使えるようにするため、グローバル変数や閉包 (closure) を台無しにしないので便利です。 コマンドライン上にすでに現れているオプションの値にもアクセスできます。
`args`
  `callback_args` オプション属性で与えられた任意の固定引数 からなるタプルです。
`kwargs`
  `callback_args` オプション属性で与えられた任意のキーワード引数 からなるタプルです。