Things get slightly more interesting when you define callback options
that take a fixed number of arguments. Specifying that a callback
option takes arguments is similar to defining a store
or append
option: if you define type, then the option takes one argument that
must be convertible to that type; if you further define nargs
, then
the option takes nargs
arguments.
Here's an example that just emulates the standard store
action:
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")
Note that optparse takes care of consuming 3 arguments and converting them to integers for you; all you have to do is store them. (Or whatever; obviously you don't need a callback for this example.)
See About this document... for information on suggesting changes.