python argparse, cómo referir args por su nombre

esta es una pregunta acerca de argparse en python, probablemente es muy fácil

import argparse parser=argparse.ArgumentParser() parser.add_argument('--lib') args = parser.parse_known_args() if args.lib == 'lib': print 'aa' 

esto funcionaría, pero en lugar de llamar args.lib, solo quiero decir ‘lib’ (no quiero escribir más), hay una manera de exportar todas las variables args fuera del módulo (es decir, cambiar el scope). para que pueda verificar directamente el valor de lib no especificando el nombre del módulo en la parte frontal

PD: tengo muchas variables, no quiero reasignar cada una

Primero, voy a recomendar el uso del especificador args . Esto deja muy claro de dónde viene la lib . Dicho esto, si encuentra que se está refiriendo mucho a un argumento, puede asignarlo a un nombre más corto:

 lib = args.lib 

Hay una manera de volcar todos los atributos en el espacio de nombres global a la vez, pero no funcionará para el espacio de nombres local de una función, y usar globals sin una buena razón es una mala idea. No consideraría guardar algunas instancias de args. para ser una razón suficientemente buena. Dicho esto, aquí está:

 globals().update(args.__dict__) 

Claro, solo agregue una línea que asigne args.lib a lib .

 import argparse parser=argparse.ArgumentParser() parser.add_argument('-lib') args = parser.parse_known_args() lib = args.lib if lib == 'lib': print 'aa' 

de grosero … pero solo porque no puedes decir que deberías … pero solo para kicks globals().update(dict(args._get_kwargs()))