Python optparse, значения по умолчанию и явные параметры

Возьмем следующий довольно стандартный код:

from optparse import OptionParser                         
opts = OptionParser()
opts.add_option('-f', action="store_true")
opts.add_option("-x", dest="x", type="int", default=1)
options, args = opts.parse_args()

Предположим, что -x и ] -f являются взаимоисключающими: когда явно присутствуют -x и -f , следует сообщить об ошибке.

Как определить, что -x присутствует явно? Даже если это не так, options перечисляют значение по умолчанию.

Один из способов - избежать установки значения по умолчанию, чего я не буду делать, потому что - help красиво выводит значения по умолчанию.

Другой способ - проверить sys.argv на наличие экземпляров -x , что тоже немного неудобно, если есть более одного имени для -x (то есть --long-name) и еще t иметь одну пару взаимоисключающих опций.

Есть ли для этого элегантное решение?

6
задан 9000 8 November 2011 в 04:48
поделиться