Say I have a namespace args that I obtain from calling parser.parse_args(), which parses the command line arguments.
How can I import all variables from this namespace to my current namespace?
e.g.
parser.add_argument('-p', '--some_parameter', default=1)
args = parser.parse_args()
# ... code to load all variables defined in the namespace args ...
print some_parameter
I could certainly do:
some_parameter = args.some_parameter
but if I have a large number of parameters I would need one such line for each parameter.
Is there another way of importing variables from a namespace without having to go through them one by one?
PS: from args import * does not work.
PS2: I am aware that this is a bad practice, but this can help in some corner cases, such us when prototyping code and tests very quickly.
Update your local namespace with the result of the
vars()function:This is generally not that great an idea; leave those attributes in the namespace instead.
You could create more problems than you solved with this approach, especially if you accidentally configure arguments with a
destname that shadows a built-in or local you care about, such aslistorprintor something. Have fun hunting down that bug!Tim Peters already stated this in his Zen of Python: