6.20.4.1 Definire una opzione di callback

Come sempre, potete definire una opzione di callback sia istanziando direttamente la classe Option, sia usando il metodo add_option() dell'oggetto OptionParser. Il solo attributo dell'opzione che dovete specificare è callback, la funzione da chiamare:

parser.add_option("-c", callback=my_callback)

Notate che voi fornite un oggetto funzione --così dovrete aver già definito una funzione my_callback() nel momento in cui definite l'opzione di callback. In questo semplice caso, optparse non sa nulla sugli argomenti che l'opzione -c si aspetta di prendere - la mera presenza di -c sulla riga di comando è tutto ciò che ha bisogno di sapere. In alcune circostanze, tuttavia, potreste volere che la vostra funzione di callback elabori un numero arbitrario di argomenti da riga di comando. Questo è il caso in cui bisogna applicare qualche trucco nella scrittura delle funzioni di callback; lo vedremo più avanti nel documento.

Ci sono alcuni altri attributi dell'opzione che potreste specificare quando definite un attributo opzione:

type
ha il suo significato usuale: così come nelle azioni ``store'' o ``append'', optparse viene istruito per elaborare un argomento che sia convertibile nel tipo specificato. Tuttavia, invece di memorizzare il valore (o i valori) da qualche parte, optparse lo converte nel tipo (type) specificato e lo passa alla vostra funzione di callback.

nargs
anche questo ha il suo significato abituale: se viene specificato e "nargs > 1", optparse elaborerà nargs argomenti, ognuno dei quali deve essere convertibile nel tipo (type) specificato. Quindi passa una tupla dei valori convertiti alla vostra funzione di callback.

callback_args
una tupla di argomenti posizionali extra da passare alla funzione di callback.

callback_kwargs
un dizionario extra di argomenti chiave da passare alla funzione di callback.

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