sto usando argparse in Python per analizzare gli argomenti della riga di comando:Python: estrarre le variabili di spazio dei nomi
parser = ArgumentParser()
parser.add_argument("--a")
parser.add_argument("--b")
parser.add_argument("--c")
args = parser.parse_args()
Ora voglio fare alcuni calcoli con a
, b
e c
. Tuttavia, trovo faticoso scrivere sempre args.a + args.b + args.c
.
Pertanto, sto estraendo quelle variabili:
a, b, c = [args.a, args.b, args.c]
tale che posso scrivere a + b + c
.
C'è un modo più elegante di fare questo?
estrazione manuale diventa molto noioso e soggetto ad errori quando si aggiungono molti argomenti.
Grazie per la risposta. Funziona, ma la parte "exec" "' sembra un brutto scherzo. Perché è necessario? Correzione – Lemming
: non funziona se la funzione contiene funzioni annidate. In questo caso viene visualizzato il seguente messaggio di errore: 'exec" " SintassiErrore: exec non qualificato non è consentito nella funzione 'main' contiene una funzione nidificata con variabili libere' – Lemming
Ick. Non lo sapevo, ma ha senso. Le chiusure richiedono il meccanismo delle variabili locali standard di Python, che accede ai locali per indice. L'uso dell'istruzione 'exec' ovunque in una funzione costringe Python ad usare un metodo alternativo per accedere ai locali per nome, perché' exec' potrebbe definire o modificare i locali (questo è anche il motivo per cui è possibile aggiornare 'locals()' if 'exec 'è visto nella funzione, ma non altrimenti). – kindall