title: Python argparse parse_args into global namespace (or a reason this is a bad idea)
body: <p>I've mostly used argparse for making command-line scripts in python, and the idiom I generally use is that I assign the arguments as attributes of an object, then parse them individually to a variable that matches their attribute name.  This seems a little repetitive.  Is there a way to assign them all into the global namespace and cut out the assignment step; or as is often the case when some python behavior seems counter-intuitive to me, can some wise, python expert point out that there a good reason I should not do this or want to do this?</p>
  
  <p>What I have now is this:</p>
  
  <pre><code>if __name__ == "__main__":
      parser = argparse.ArgumentParser()
      parser.add_argument("--db",type=str, dest='db', nargs='?', default="test")
      parser.add_argument("--collection",type=str, dest='collection', nargs='?', help="Collection, default is test", default="test")
      args = parser.parse_args()
      db = args.db                   # gross! 
      collection = args.collection   # yuck!
      print(db)
      print(collection)
  </code></pre>
  
  <p>What I'd like this is:</p>
  
  <pre><code>if __name__ == "__main__":
      parser = argparse.ArgumentParser()
      parser.add_argument("--db",type=str, dest='db', nargs='?', default="test")
      parser.add_argument("--collection",type=str, dest='collection', nargs='?', help="Collection, default is test", default="test")
      parser.SUPER_parse_args() # now, db and collection are already in the namespace!
      print(db)
      print(collection)
  </code></pre>
  
  <p>It doesn't seem like much when I only have 2 arguments, but if I have 10 or so, doubling the  assign steps, where I rename into the global namespace the attributes that already exist in the args object, starts to bug me.</p>