決まった数の引数をとるようなコールパックオプションを定義するなら、問題はやや興味深く
なってきます。引数をとるようコールバックに指定するのは、store
や
append
オプションの定義に似ています: type を定義していれば、
そのオプションは引数を受け取ったときに該当する型に変換できねばなりません;
さらに nargs
を指定すれば、オプションは nargs
個の引数を
受け取ります。
標準の store
アクションをエミュレートする例を以下に示します:
def store_value(option, opt_str, value, parser): setattr(parser.values, option.dest, value) [...] parser.add_option("--foo", action="callback", callback=store_value, type="int", nargs=3, dest="foo")
optparse は 3 個の引数を受け取り、それらを整数に変換するところまで 面倒をみてくれます; ユーザは単にそれを保存するだけです。 (他の処理もできます; いうまでもなく、この例にはコールバックは必要ありません)
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。