###
6.20.3.3 オプションに対するアクション

オプションに対する様々なアクションは全て、わずかに異なる要求事項と 効果を持っています。 ``help'' アクションを除き、`Option`を 生成する際には少なくとも一つの別のキーワード引数を指定する必要があります; 各アクションに対する厳密な要求事項を以下に挙げます。

store
  [relevant: type, dest, nargs, choices]

  オプションの後には必ず引数が続き、type に従った値に変換されて dest に保存されます。nargs > 1 の場合、複数の引数が コマンドラインから取り出されます; 引数は全て type に従って 変換され、dest にタプルとして保存されます。 以下の 6.20.3 節、 ``オプションの型'' を 参照してください。

  choices を指定 (文字列のリストかタプル) していれば、 型のデフォルト値は ``choice'' になります。

  type が指定されなければ、デフォルト値は ``string'' になります。

  dest が指定されない場合、 `optparse` は目的変数 を最初の長い形式のオプション文字列から導出します (例えば、 --foo-bar -> foo_bar)。長い形式のオプション文字列 がない場合、`optparse` は最初の短い形式のオプションから 目的変数名を導出します (例えば -f -> f)。

  例:

      make_option("-f")
      make_option("-p", type="float", nargs=3, dest="point")

  以下のコマンド:

      -f foo.txt -p 1 -3.5 4 -fbar.txt

  を与えると、 `optparse` は以下のように変数を設定します:

      values.f = "bar.txt"
      values.point = (1.0, -3.5, 4.0)

  (実際のところ、 `values.f` は二度値設定されますが、 最終的には二回目の設定値だけが読み取れます。)

store_const
  [required: const, dest]

  `Option` コンストラクタに与えられた const 値が dest に保存されます。

  例:

      make_option("-q", "--quiet",
             action="store_const", const=0, dest="verbose"),
      make_option("-v", "--verbose",
             action="store_const", const=1, dest="verbose"),
      make_option(None, "--noisy",
             action="store_const", const=2, dest="verbose"),

  --noisy がなければ、 `optparse` は以下のように 値を設定します:

      values.verbose = 2

store_true
  [required: dest]

  ``store_const'' の特殊なケースで、真値 (厳密には整数の 1) を dest に保存します。

store_false
  [required: dest]

  ``store_true'' と同じですが、偽値 (整数の 0) を保存します。

  例:

      make_option(None, "--clobber", action="store_true", dest="clobber")
      make_option(None, "--no-clobber", action="store_false", dest="clobber")

append
  [relevant: type, dest, nargs, choices]

  オプションの後ろには引数が一つ続かなければなりません。この引数は dest に入っているリストに追加されます。dest のデフォルト値が 指定されていない (すなわち、デフォルト値が Noneである) 場合、 `optparse` が最初にコマンドライン中にこのオプションを見つけた際に 空のリストが自動的に生成されます。 "`nargs > 1`" であれば、複数の引数が取り出され、長さ nargs のタプルが dest に追加されます。

  type と dest のデフォルト値は ``store'' アクションの値と 同じです。

  例:

      make_option("-t", "--tracks", action="append", type="int")

  -t3 がコマンドライン上で見つかると、`optparse` は以下と等価な処理を行います:

      values.tracks = []
      values.tracks.append(int("3"))

  その後で "`-tracks=4`" が見つかると、さらに以下の処理を行います:

      values.tracks.append(int("4"))

  `optparse` が "`-tracks=x`" のような指定をどのように 扱うかについての情報は、 ``エラー処理'' ( 6.20.2 節) を参照してください。

count
  [required: dest]

  dest に保持されている整数値をインクリメント (1 増加) させます。 dest は (デフォルトの値を指定しない限り) 最初にインクリメントを 行う前にゼロに設定されます。

  例:

      make_option("-v", action="count", dest="verbosity")

  最初に -v がコマンドライン上で見つかった際、 `optparse` は以下と等価な処理:

      values.verbosity = 0
      values.verbosity += 1

  を行います。その後 -v が見つかると、さらに以下の処理:

      values.verbosity += 1

  を行います。

callback
  [required: 'callback'; relevant: type, nargs, callback_args, callback_kwargs]

  callback に指定された関数を呼び出します。この関数の 用法は以下のようになっています:

      func(option : Option,
           opt : string,
           value : any,
           parser : OptionParser,
           *args, **kwargs)

  callback オプションについての詳細は、 6.20.4 節、 ``callback オプション'' でカバーされています。

help
  [required: none]

  現在のオプションパーザ内にある全てのオプション対する完全な ヘルプメッセージを出力します。ヘルプメッセージは `OptionParser` のコンストラクタに渡された usage 文字列と、各オプションに 渡された help 文字列から生成されます。

  オプションに help 文字列が指定されていなくても、ヘルプメッセージ 中には列挙されます。オプションを完全に表示させないようにするには、 特殊な値 `optparse.SUPPRESS_HELP` を使います。

  例:

      from optparse import Option, OptionParser, SUPPRESS_HELP

      usage = "usage: %prog [options]"
      parser = OptionParser(usage, option_list=[
        make_option("-h", "--help", action="help"),
        make_option("-v", action="store_true", dest="verbose",
                    help="Be moderately verbose")
        make_option("--file", dest="filename",
                    help="Input file to read data from"),
        make_option("--secret", help=SUPPRESS_HELP)

  `optparse` がコマンドライン上に --h または --help を見つけると、以下のようなヘルプメッセージを 標準出力に出力します:

      usage: <yourscript> [options]

      options:
        -h, --help        Show this help message and exit
        -v                Be moderately verbose
        --file=FILENAME   Input file to read data from

  ヘルプメッセージの出力後、`optparse` は `sys.exit(0)` でプロセスを終了します。

version
  [required: none]

  `OptionParser` に指定されているバージョン番号を標準出力に 出力して終了します。バージョン番号は、実際には `OptionParser` の`print_version()` メソッドで書式化されてから出力されます。 通常、 `OptionParser` のコンストラクタに version が指定されたときのみ関係のあるアクションです。