I'm using argparse in python to parse commandline arguments:
parser = ArgumentParser()
parser.add_argument("--a")
parser.add_argument("--b")
parser.add_argument("--c")
args = parser.parse_args()
Now I want to do some calculations with a
, b
, and c
. However, I find it tiresome to write args.a + args.b + args.c
all the time.
Therefore, I'm extracting those variables:
a, b, c = [args.a, args.b, args.c]
Such that I can write a + b + c
.
Is there a more elegant way of doing that?
Manual extraction gets very tedious and error prone when adding many arguments.
You can add things to the local scope by calling
locals()
. It returns a dictionary that represents the currently available scope. You can assign values to it as well -locals()['a'] = 12
will result ina
being in the local scope with a value of 12.If you want them as globals, you can do:
If you're in a function and want them as local variables of that function, you can do this in Python 2.x as follows:
This trick doesn't work in Python 3, where
exec
is not a statement, nor likely in other Python variants such as Jython or IronPython.Overall, though, I would recommend just using a shorter name for the
args
object, or use your clipboard. :-)