###
6.20.2.1 "store" アクション

アクションは、action が設定されているオプションがコマンド ライン内に見つかったときに `optparse` が行うべきことを 教えます。例えば、 store はこういう意味です: 次の引数 (または現在の引数の残りの部分) を取り上げ、正しい型であるか 確認して、決められた目的変数に保存します。

例として、先ほどのオプションの "..." を埋めてみましょう:

    parser.add_option("-f", "--file",
                      action="store", type="string", dest="filename")

次に、架空のコマンドラインをでっち上げて、`optparse` に解析してもらいましょう:

    args = ["-f", "foo.txt"]
    (options, args) = parser.parse_args(args)

(引数リストを `parse_args()` に渡さなければ、 自動的に `sys.argv[1:]` を使うので注意してください。)

`optparse` が -f を見つけると、次の引数 -- ``foo.txt'' -- を吸出し、特殊なオブジェクトの filename 属性に記憶します。このオブジェクトは `parse_args()` の 戻り値の最初の値です。従って以下のコード:

    print options.filename

は ``foo.txt'' を出力します。

`optparse` でサポートされている他のオプションの型は ``int'' と ``float'' です。以下に整数型の引数を要求するオプションの例を示し ます:

    parser.add_option("-n", type="int", dest="num")

長い文字列によるオプションを与えていないことに注意してください。 これはまったく問題なく受理されます。 また、actionを指定していません -- これはアクションがデフォルト で ``store'' になるからです。

架空のコマンドラインをもう一つ解析してみましょう。今度は、 オプション引数をオプションの右側にぴったりくっつけて一緒くたに します -- -n42 (一つの引数のみ) は -n 42 (二つの引数からなる) と等価になります:

    (options, args) = parser.parse_args(["-n42"])
    print options.num

は ``42'' を出力します。

``float'' 型を使った例は、読者のための練習課題として残しておきます。

型を指定しない場合、 `optparse` は引数を ``string'' 型と 仮定します。デフォルトのアクションが ``store'' であることも 併せて考えると、最初の例はもっと短くなります:

    parser.add_option("-f", "--file", dest="filename")

目的変数名を与えなければ、`optparse` はオプション文字列 から気の利いたデフォルト値を決めます: 最初の長い形式のオプション 文字列が --foo-bar だったとすると、デフォルトの 目的変数は foo_bar となります。長い形式のオプションが ない場合、`optparse` は最初の短いオプションに注目します: -f に対するデフォルトの目的変数は f となります。

型を追加するのはかなり簡単です; 6.20.5 節、 ``新しい型を追加する'' を参照してください。