estoy usando argparse en Python para analizar los argumentos de línea de comandos:Python: El extracto de las variables de espacio de nombres
parser = ArgumentParser()
parser.add_argument("--a")
parser.add_argument("--b")
parser.add_argument("--c")
args = parser.parse_args()
Ahora quiero hacer algunos cálculos con a
, b
, y c
. Sin embargo, me resulta tedioso escribir args.a + args.b + args.c
todo el tiempo.
Por lo tanto, estoy extrayendo aquellas variables:
a, b, c = [args.a, args.b, args.c]
tal que puedo escribir a + b + c
.
¿Hay una forma más elegante de hacerlo?
La extracción manual es muy tediosa y propensa a errores cuando se agregan muchos argumentos.
Gracias por la respuesta. Funciona, pero la parte 'exec '' 'se siente como un hack muy feo. ¿Por qué es eso necesario? – Lemming
Corrección: no funciona si la función contiene funciones anidadas. En este caso, aparece el siguiente mensaje de error: 'exec" " SyntaxError: exec no calificado no está permitido en la función 'main' contiene una función anidada con variables libres ' – Lemming
Ick. No lo sabía, pero tiene sentido. Los cierres requieren el mecanismo variable local estándar de Python, que accede a los locales por índice. El uso de la declaración 'exec' en cualquier parte de una función obliga a Python a usar un método alternativo para acceder a los locales por su nombre, porque' exec' podría definir o modificar locales (esta es la razón por la que puede actualizar 'locals()' if 'exec 'se ve en la función, pero no de otra manera). – kindall