6.20.4.2 Come vengono chiamate le funzioni di callback

Tutte le funzioni di callback vengono chiamate nel modo seguente:

func(option, opt, value, parser, *args, **kwargs)

dove

option
è l'istanza Option che sta chiamando la funzione di callback.

opt
è la stringa di opzione trovata nella riga di comando che provoca la chiamata alla funzione di callback. (Se viene usata la forma abbreviata di un'opzione in forma estesa, opt conterrà quest'ultima, la stringa di opzione canonica--per esempio, se l'utente immette --foo sulla riga di comando come abbreviazione di --foobar, allora opt sarà --foobar.)

value
è l'argomento dell'opzione incontrata sulla riga di comando. optparse si aspetta solo un argomento se type viene impostato; il tipo di dato del valore value sarà del tipo sottinteso dallo stesso type dell'opzione (vedete 6.20.3, ``Tipi delle opzioni''). Se il tipo dell'opzione type vale None (nessun argomento atteso), allora value varrà None. Se "nargs > 1", value sarà una tupla di valori del tipo appropriato.

parser
è l'istanza di OptionParser che chiama la funzione, utile principalmente perché attraverso essa potete accedere ad altri dati interessanti, come gli attributi dell'istanza:

parser.rargs
la lista corrente degli argomenti rimanenti, ovvero con opt rimosso (e value, se esistente) e con presenti i soli argomenti che li seguono. La lista parser.rargs può venire liberamente modificata, per esempio rimuovendo più argomenti.

parser.largs
l'insieme corrente di argomenti rimasti, cioè quegli argomenti che sono stati elaborati ma che non sono stati riconosciuti come opzioni (o come argomenti di opzione). parser.largs può venire liberamente modificato, ad esempio aggiungendovi ulteriori argomenti.

parser.values
l'oggetto in cui i valori delle opzioni vengono memorizzati in modo predefinito. L'oggetto è utile perché permette alle funzioni di callback di utilizzare lo stesso meccanismo di optparse per la memorizzazione dei valori delle opzioni; non avete bisogno di pasticciare con variabili globali o valori restituiti. Potete anche accedere al(i) valore(i) di qualsiasi opzione incontrata sulla riga di comando.

args
è una tupla di argomenti posizionali arbitrari fornita tramite l'attributo callback_args dell'opzione.

kwargs
è un dizionario di chiavi arbitrarie fornito tramite callback_kwargs.

Dal momento che args e kwargs sono facoltativi (vengono passati solo definendo callback_args e/o callback_kwargs in fase di definizione della opzione di callback), la funzione di callback più semplice è:

def my_callback(option, opt, value, parser):
    pass

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