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
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_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:
appendactions, 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.
nargsarguments, each of which must be convertible to type. It then passes a tuple of converted values to your callback.
See About this document... for information on suggesting changes.