もちろん、単に定義済みのオプションの値を調べるだけにとどまらず、コールバックには 任意の条件を入れられます。例えば、満月でなければ呼び出してはならないオプション があるとしましょう。やらなければならないことはこれだけです:
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()
の定義は読者への課題としましょう。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。