###
6.20.4.1 callback オプションを定義する

例によって、コールバックオプションの定義は、直接 `Option` クラスをインスタンス化するか、`OptionParser` オブジェクト の `add_option()` メソッドを使うことで定義できます。 指定しなければならない属性は唯一 callback で、呼び出したい 関数を指定します:

    parser.add_option("-c", callback=my_callback)

ここでは関数オブジェクトを与えなければならないことに注意して ください -- つまり、callback オプションを定義する時点で、 関数 `my_callback()` はすでに定義済みにしていなければ なりません。上の単純なケースでは、 `optparse` は -c が必要とする引数について何の知識もありません。 通常、これはオプションが何ら引数をとらない - コマンドライン上に -c が存在するかどうかだけが知りたいことの全てである - ことを意味します。しかし、状況によっては、コールバック関数 が任意の数の引数をコマンドライン引数から取り出したいと思うかも しれません。 これがコールバック関数の記述を難しくしているところです; これについては本ドキュメントの後の方でカバーします。

オプションの属性を定義する際に指定できる属性はいくつかあります:

type
  通常の意味を持ちます: ``store'' や ``append'' アクションのように、 `optparse` に対して引数を一つ消費するように指示します。 この引数は type に変換できなければなりません。 `optparse` は値をどこかに保存する のではなく、type に変換してコールバック関数に渡します。

nargs
  これも通常の意味を持ちます: この属性が与えられ、"`nargs > 1`"であるばあい、`optparse` は nargs 個の引数を取り出します。 各値は type に変換可能でなくてはなりません。その後、 変換された値からなるタプルがコールバック関数に渡されます。

callback_args
  コールバックに渡す外部の固定引数からなるタプルです。

callback_kwargs
  コールバックに渡す外部のキーワード引数です。