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 に追加されます。

typedest のデフォルト値は ``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

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

version
[required: none]

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

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。