###
4 標準的なオプション・アクション

様々なオプション・アクションにはどれも互いに少しづつ異なった条件と作用があります。 ほとんどのアクションに関連するオプション属性がいくつかあり、値を指定して `optparse`の挙動を操作できます; いくつかのアクションには必須の属性 があり、必ず値を指定せねばなりません。

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

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

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

  `type` を指定しない場合、デフォルトの値は `string` です。

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

  例えば:

      parser.add_option("-f")
      parser.add_option("-p", type="float", nargs=3, dest="point")

  とすると、以下のようなコマンドライン:

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

  を解析した場合、`optparse` は

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

  のように設定を行います。

- `store_const` [required: `const`; relevant: `dest`]

  値`cost` を`dest` に保存します。

  例えば:

      parser.add_option("-q", "--quiet",
                        action="store_const", const=0, dest="verbose")
      parser.add_option("-v", "--verbose",
                        action="store_const", const=1, dest="verbose")
      parser.add_option("--noisy",
                        action="store_const", const=2, dest="verbose")

  とします。

  `"-noisy"` が見つかると、 `optparse` は

      options.verbose = 2

  のように設定を行います。

- `store_true` [relevant: `dest`]

  `store_const` の特殊なケースで、真 (True) を`dest` に保存します。

- `store_false` [relevant: `dest`]

  `store_true` と同じですが、偽 (False) を保存します。

  例:

      parser.add_option("--clobber", action="store_true", dest="clobber")
      parser.add_option("--no-clobber", action="store_false", dest="clobber")

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

  このオプションの後ろには必ず引数が続きます。引数は`dest` のリストに 追加されます。`dest` のデフォルト値を指定しなかった場合、 `optparse` がこのオプションを最初にみつけた時点で空のリストを自動的に生成します。 `nargs` > 1 の場合、複数の引数をコマンドラインから取り出し、 長さ `nargs` のタプルを生成して `dest`に追加します。

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

  例:

      parser.add_option("-t", "--tracks", action="append", type="int")

  `"-t3"` がコマンドライン上で見つかると、`optparse` は:

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

  と同等の処理を行います。

  その後、`"-tracks=4"` が見つかると:

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

  を実行します。

- `append_const` [required: `const`; relevant: `dest`]

  `store_const` と同様ですが、`const` の値は `dest` に 追加(append)されます。 `append` の場合と同じように `dest` のデフォルトは `None` ですが このオプションを最初にみつけた時点で空のリストを自動的に生成します。

- `count` [relevant: `dest`]

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

  例:

      parser.add_option("-v", action="count", dest="verbosity")

  コマンドライン上で最初に `"-v"` が見つかると、`optparse` は:

      options.verbosity = 0
      options.verbosity += 1

  と同等の処理を行います。

  以後、`"-v"` が見つかるたびに、

      options.verbosity += 1

  を実行します。

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

  `callback` に指定された関数を次のように呼び出します。

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

  詳細は、14.3.4 節「オプション処理コールバック」を 参照してください。

- `help`

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

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

  `optparse` は全ての`OptionParser` に自動的に`help` オプションを追加するので、通常自分で生成する必要はありません。

  例:

      from optparse import OptionParser, SUPPRESS_HELP

      parser = OptionParser()
      parser.add_option("-h", "--help", action="help"),
      parser.add_option("-v", action="store_true", dest="verbose",
                        help="Be moderately verbose")
      parser.add_option("--file", dest="filename",
                        help="Input file to read data from"),
      parser.add_option("--secret", help=SUPPRESS_HELP)

  `optparse` がコマンドライン上に `"-h"` または `"-help"` を見つけると、以下のようなヘルプメッセージを 標準出力に出力します (`sys.argv[0]` は`"foo.py"` だとします):

      usage: foo.py [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`

  `OptionParser` に指定されているバージョン番号を標準出力に 出力して終了します。バージョン番号は、実際には `OptionParser` の`print_version()` メソッドで書式化されてから出力されます。 通常、 `OptionParser` のコンストラクタに version が指定されたときのみ関係のあるアクションです。 `help` オプションと同様、`optparse` はこのオプションを 必要に応じて自動的に追加するので、`version` オプションを作成する ことはほとんどないでしょう。