6.20.2.3 デフォルト値を設定する

上で述べてきた例は全て、あるコマンドラインオプションが見つかった 際に何らかの変数 (``destination: 目的変数'') の設定を伴うもの でした。ではこれらのオプションがなければどうなるのでしょうか? デフォルト値を与えていないので、これらの値は全て None になります。 これはこれでよいときもあります (デフォルトで None になるように しているのはこのためです) が、もっときちんと制御したい場合も あります。その要求を満たすために、optparse では各目的変数 ごとにデフォルトの値を指定できるようにしており、デフォルト値は コマンドラインが解析される前に代入されます。

まず、 verbose/quiet の例を考えてみましょう。optparse に 対して、-q がない限り verbose を 1 に設定させたい なら、以下のようにします:

parser.add_option("-v", action="store_true", dest="verbose", default=1)
parser.add_option("-q", action="store_false", dest="verbose")

奇妙なことに、上のコードは以下とまったく等価です: Oddly enough, this is exactly equivalent:

parser.add_option("-v", action="store_true", dest="verbose")
parser.add_option("-q", action="store_false", dest="verbose", default=1)

これらのコードが等価なのは、オプションの 目的変数 に対して デフォルト値を指定しており、各コードの二つのオプションは同じ 目的変数 (verbose 変数) を持っているからです。

以下のコード:

parser.add_option("-v", action="store_true", dest="verbose", default=0)
parser.add_option("-q", action="store_false", dest="verbose", default=1)

を考えてみましょう。繰り返しますが、verbose のデフォルト値は 1 です: 特定の目的変数に対するデフォルト値として有効なのは、最後に指定 した値です。

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