【问题】
已经获得了对应的namespace的变量:newParser = argparse.ArgumentParser();
newParser.add_argument("-u", "--username", dest="username_argparse", help="Your user name");
newParser.add_argument("-a", "--age", type=int, dest="age_argparse", help="Your age");
args = newParser.parse_args();
print "args=",args; #args= Namespace(age_argparse=1000, username_argparse='crifanLi')
print "type(args)=",type(args); #type(args)=
现在想要能够枚举其中的args变量,获得其中的key,即age_argparse和username_argparse。
【解决过程】
1.找了半天,
最终是参考:
使用__dict__的方式newParser = argparse.ArgumentParser();
newParser.add_argument("-u", "--username", dest="username_argparse", help="Your user name");
newParser.add_argument("-a", "--age", type=int, dest="age_argparse", help="Your age");
args = newParser.parse_args();
print "args=",args; #args= Namespace(age_argparse=1000, username_argparse='crifanLi')
print "type(args)=",type(args); #type(args)=
argsDict = args.__dict__;
print "parsed argsDict=",argsDict; #parsed argsDict= {'age_argparse': 1000, 'username_argparse': 'crifanLi'}
然后再通过argsDict.keys()就可以得到对应的key了。
2. 另外也参考:
知道了,也可以通过vars()的方式:newParser = argparse.ArgumentParser();
newParser.add_argument("-u", "--username", dest="username_argparse", help="Your user name");
newParser.add_argument("-a", "--age", type=int, dest="age_argparse", help="Your age");
args = newParser.parse_args();
print "args=",args; #args= Namespace(age_argparse=1000, username_argparse='crifanLi')
print "type(args)=",type(args); #type(args)=
argsDict = args.__dict__;
print "parsed argsDict=",argsDict; #parsed argsDict= {'age_argparse': 1000, 'username_argparse': 'crifanLi'}
argsVars = vars(args);
print "argsVars=",argsVars; #argsVars= {'age_argparse': 1000, 'username_argparse': 'crifanLi'}
获得对应的dict变量。
3.另外也参考比人中提到的,官网的解释:
再次知道了vars。
【总结】
对于namespace的args,可以通过args.__dict__或者vars(args)的方式,获得对应的dict类型的argsDict变量,然后就可以再去枚举,获得对应的key(和value)了。