6.20.2.3 Setting default values

###
6.20.2.3 Setting default values

All of the above examples involve setting some variable (the ``destination'') when certain command-line options are seen. What happens if those options are never seen? Since we didn't supply any defaults, they are all set to `None`. Sometimes, this is just fine (which is why it's the default), but sometimes, you want more control. To address that need, `optparse` lets you supply a default value for each destination, which is assigned before the command-line is parsed.

First, consider the verbose/quiet example. If we want `optparse` to set `verbose` to `True` unless -q is seen, then we can do this:

    parser.add_option("-v", action="store_true", dest="verbose", default=True)
    parser.add_option("-q", action="store_false", dest="verbose")

Oddly enough, this is exactly equivalent:

    parser.add_option("-v", action="store_true", dest="verbose")
    parser.add_option("-q", action="store_false", dest="verbose", default=True)

Those are equivalent because you're supplying a default value for the option's destination, and these two options happen to have the same destination (the `verbose` variable).

Consider this:

    parser.add_option("-v", action="store_true", dest="verbose", default=False)
    parser.add_option("-q", action="store_false", dest="verbose", default=True)

Again, the default value for `verbose` will be `True`: the last default value supplied for any particular destination is the one that counts.