Tome el siguiente código bastante estándar:Python optparse, valores predeterminados y opciones explícitas
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()
Supongamos que -x
y -f
son excluyentes entre sí: cuando -x
y -f
son a la vez presente de forma explícita, se debe informar de un error.
¿Cómo puedo detectar si -x
está presente explícitamente? Incluso si no lo es, options
enumera el valor predeterminado.
Una forma sería evitar establecer el valor predeterminado que prefiero no hacer, porque --help
imprime muy bien los valores predeterminados.
Otra forma sería el registro sys.argv
para las instancias de -x
, que es un poco incómodo, también, si hay más de un nombre para -x
(es decir, un nombre de --long) y hay más de un par de mutuamente excluyentes opciones.
¿Existe una solución elegante para esto?