6.20.3.3 Azioni delle opzioni

Le varie azioni delle opzioni hanno tutte requisiti ed effetti leggermente differenti. Ad eccezione dell'azione ``help'', dovete fornire almeno un'altro argomento chiave quando create la Option; i requisiti esatti per ogni azione vengono elencati qui:

store
[requisiti pertinenti: type, dest, nargs, choices]

L'opzione deve essere seguita da un argomento, che viene convertito in un valore secondo quanto specificato in type, e memorizzato in dest. Se nargs > 1, possono venire elaborati più argomenti dalla riga di comando; tutti gli argomenti verranno convertiti secondo quanto specificato in type, e memorizzati sotto forma di tupla in dest. Vedete la sezionne 6.20.3, ``Tipi delle opzioni'', più sotto.

Se viene fornito choices (una sequenza di stringhe), il tipo predefinito è ``choice''.

Se type non viene specificato, il tipo predefinito è ``string''.

Se dest non viene specificato, optparse deriva il nome della variabile di destinazione dalla prima opzione in forma lunga (per esempio --foo-bar diventa foo_bar). Se non ci sono opzioni in forma lunga, optparse deriva il nome della destinazione dalla prima opzione in forma breve (per esempio, -f diventa f).

Esempio:

make_option("-f")
make_option("-p", type="float", nargs=3, dest="point")

Data la seguente riga di comando:

-f foo.txt -p 1 -3.5 4 -fbar.txt

optparse imposterà:

values.f = "bar.txt"
values.point = (1.0, -3.5, 4.0)

(In effetti, values.f viene impostato due volte, ma solo la seconda volta è visibile nella parte finale.)

store_const
[richiesti: const, dest]

Il valore const fornito al costruttore di Option viene memorizzato in dest.

Esempio:

make_option("-q", "--quiet",
       action="store_const", const=0, dest="verbose"),
make_option("-v", "--verbose",
       action="store_const", const=1, dest="verbose"),
make_option("--noisy",
       action="store_const", const=2, dest="verbose"),

Se viene visto --noisy, optparse imposterà:

values.verbose = 2

store_true
[richiesto: dest]

Uno caso speciale di ``store_const'', che memorizza True in dest.

store_false
[richiesto: dest]

Come ``store_true'', ma memorizza False.

Esempio:

make_option(None, "--clobber", action="store_true", dest="clobber")
make_option(None, "--no-clobber", action="store_false", dest="clobber")

append
[requisiti pertinenti: type, dest, nargs, choices]

L'opzione deve essere seguita da un argomento, che viene accodato alla lista in dest. Se non viene fornito alcun valore predefinito per dest (cioè il valore predefinito è None), non appena optparse incontra questa opzione sulla riga di comando viene automaticamente creata una lista vuota. Se nargs > 1, vengono elaborati più argomenti, e una tupla di lunghezza pari a nargs viene aggiunta a dest.

I valori predefiniti per type e dest sono uguali a quelli dell'azione ``store''.

Esempio:

make_option("-t", "--tracks", action="append", type="int")

Se l'argomento -t3 viene individuato sulla riga di comando, optparse esegue l'equivalente di:

values.tracks = []
values.tracks.append(int("3"))

Se, un po' più avanti, venisse individuato --tracks=4, verrebbe eseguito:

values.tracks.append(int("4"))

Vedete ``Gestione degli Errori'' (sezione 6.20.2) per informazioni su modo in cui optparse si comporta con qualcosa come --tracks=x.

count
[richiesto: dest]

Incrementa il valore intero memorizzato in dest. dest viene impostato a zero prima di venire incrementato la prima volta (a meno che non abbiate fornito un valore predefinito).

Esempio:

make_option("-v", action="count", dest="verbosity")

La prima molta che -v viene individuato sulla riga di comando, optparse esegue l'equivalente di:

values.verbosity = 0
values.verbosity += 1

Ogni occorrenza successiva di -v risulta tale:

values.verbosity += 1

callback
[richiesto: callback; requisiti pertinenti: type, nargs, callback_args, callback_kwargs]

Chiama la funzione specificata da callback. La dichiarazione della funzione dovrebbe essere:

func(option : Option,
     opt : string,
     value : any,
     parser : OptionParser,
     *args, **kwargs)

Le opzioni di callback vengono trattate dettagliatamente nella sezione 6.20.4, ``Opzioni di callback''.

help
[richiesto: nessuno]

Stampa un completo messagio di aiuto per tutte le opzioni nell'istanza corrente del parser delle opzioni. Il messaggio di aiuto viene costruito dalle stringhe usage passate al costruttore di OptionParser, e dalla stringa help passata singolarmente a ciascuna opzione.

Se non viene fornita nessuna stringa help per un'opzione, questa viene comunque mostrata nel messaggio di aiuto. Per omettere completamente una opzione, usate il valore speciale optparse.SUPPRESS_HELP.

Esempio:

from optparse import Option, OptionParser, SUPPRESS_HELP

usage = "usage: %prog [options]"
parser = OptionParser(usage, option_list=[
  make_option("-h", "--help", action="help"),
  make_option("-v", action="store_true", dest="verbose",
              help="Sii moderatamente verboso")
  make_option("--file", dest="filename",
              help="File di input da cui leggere i dati"),
  make_option("--secret", help=SUPPRESS_HELP)
])

Se optparse incontra -h oppure --help sulla riga di comando, verrà stampato sullo stdout qualcosa di simile al seguente messaggio di aiuto:

usage: <yourscript> [options]

options:
  -h, --help        Visualizza questo messaggio ed esci
  -v                Sii moderatamente verboso
  --file=FILENAME   File di input da cui leggere i dati

Dopo aver stampato il messaggio di aiuto, optparse termina il vostro processo con il codice di uscita sys.exit(0).

version
[richiesto: nessuno]

Stampa il numero di versione fornito ad OptionParser sullo stdout, ed esce. Il numero di versione viene effettivamente formattato e stampato dal metodo print_version() di OptionParser. Generalmente è rilevante solo se l'argomento version viene fornito al costruttore di OptionParser.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.