###
7 コールバックの例 4: 任意の条件をチェックする

もちろん、単に定義済みのオプションの値を調べるだけにとどまらず、コールバックには 任意の条件を入れられます。例えば、満月でなければ呼び出してはならないオプション があるとしましょう。やらなければならないことはこれだけです:

    def check_moon(option, opt_str, value, parser):
        if is_moon_full():
            raise OptionValueError("%s option invalid when moon is full"
                                   % opt_str)
        setattr(parser.values, option.dest, 1)
    [...]
    parser.add_option("--foo",
                      action="callback", callback=check_moon, dest="foo")

(`is_moon_full()` の定義は読者への課題としましょう。