As always, the easiest way to define a callback option is by using the
parser.add_option()
method. Apart from action, the only option
attribute you must specify is callback
, the function to call:
parser.add_option("-c", action="callback", callback=my_callback)
callback
is a function (or other callable object), so you must have
already defined my_callback()
when you create this callback option.
In this simple case, optparse doesn't even know if -c takes any
arguments, which usually means that the option takes no arguments--the
mere presence of -c on the command-line is all it needs to know. In
some circumstances, though, you might want your callback to consume an
arbitrary number of command-line arguments. This is where writing
callbacks gets tricky; it's covered later in this section.
optparse always passes four particular arguments to your callback, and it
will only pass additional arguments if you specify them via
callback_args
and callback_kwargs
. Thus, the minimal callback
function signature is:
def my_callback(option, opt, value, parser):
The four arguments to a callback are described below.
There are several other option attributes that you can supply when you define a callback option:
store
or append
actions,
it instructs optparse to consume one argument and convert it to
type. Rather than storing the converted value(s) anywhere,
though, optparse passes it to your callback function.
nargs
nargs
arguments, each of which must be convertible to
type. It then passes a tuple of converted values to your
callback.
callback_args
callback_kwargs
See About this document... for information on suggesting changes.