Tutti i precedenti esempi necessitano dell'impostazione di alcune
variabili (la ``destinazione'') quando vengono rilevate certe opzioni da
riga di comando. Cosa succede se queste opzioni non venissero mai
rilevate? Se non vengono impostate delle opzioni predefinite, vengono
tutte impostate a None
. Questo comportamento qualche volta può
essere accettabile (e questo è il motivo per cui è il predefinito), ma
qualche volta potreste volere un un maggiore controllo. Per soddisfare
questa necessità, optparse vi permette di impostare un valore
predefinito per ogni destinazione, che viene assegnato prima che la riga
di comando venga analizzata.
Innanzitutto considerate l'esempio prolisso/quieto. Se vogliamo che
optparse imposti verbose a True
senza che
-q venga rilevato, allora possiamo fare così:
parser.add_option("-v", action="store_true", dest="verbose", default=True) parser.add_option("-q", action="store_false", dest="verbose")
Stranamente, questo è esattamente equivalente:
parser.add_option("-v", action="store_true", dest="verbose") parser.add_option("-q", action="store_false", dest="verbose", default=True)
Questi sono equivalenti in quanto avete fornito un valore predefinito per la destinazione delle opzioni, e queste due opzioni hanno la stessa destinazione (la variabile verbose)
Considerate questo:
parser.add_option("-v", action="store_true", dest="verbose", default=False) parser.add_option("-q", action="store_false", dest="verbose", default=True)
Di nuovo, il valore predefinito per verbose sarà True
:
l'ultimo valore predefinito fornito per ogni destinazione è l'unico
che ha importanza.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.