###
6.20.3.1 パーザを生成してオプションを追加する

パーザにオプションを加えていく方法はいくつかあります。一つ `Options` からなるリストを `OptionParser` のコンストラクタ に渡す方法です:

    parser = OptionParser(option_list=[
        make_option("-f", "--filename",
                    action="store", type="string", dest="filename"),
        make_option("-q", "--quiet",
                    action="store_false", dest="verbose")])

(`make_option()` は `Option` クラスの別名、 すなわち `Option` のコンストラクタを呼び出すだけです。 `optparse` の将来のバージョンでは、おそらく `Option` を 複数のクラスに分割し、 `make_option()` は正しいクラスを 取り出してインスタンス化するファクトリ関数になるはずです。)

長い形式のオプションリストについては、リストを別に生成する方が しばしば便利です:

    option_list = [make_option("-f", "--filename",
                               action="store", type="string", dest="filename"),
                   # 17 other options ...
                   make_option("-q", "--quiet",
                               action="store_false", dest="verbose")]
    parser = OptionParser(option_list=option_list)

また、`OptionParser` の `add_option()` メソッドを 使って、オプションを一つ一つ追加することもできます:

    parser = OptionParser()
    parser.add_option("-f", "--filename",
                      action="store", type="string", dest="filename")
    parser.add_option("-q", "--quiet",
                      action="store_false", dest="verbose")

このメソッドは `Option` コンストラクタが送出する例外を 簡単に追跡できるようにします。例外が発生するのはよくあることで、 これは数多くのキーワード引数間で複雑な相互依存関係が発生する ためです -- うまく指定がされていない場合、`optparse` は `OptionError` を送出します。

`add_option()` は以下の二つの方法のいずれかで呼び出す ことができます:

- (`make_option()` が返すような) `Option` インスタンスを渡す 。
- `make_option()` (すなわち `Option` の コンストラクタ) が受理できるような固定引数およびキーワード引数の 組み合わせを渡し、 `Option` インスタンスを生成する (上述)。