【问题】
已经获得了对应的namespace的变量:
1 2 3 4 5 6 7 | 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)= <class 'argparse.Namespace'> |
现在想要能够枚举其中的args变量,获得其中的key,即age_argparse和username_argparse。
【解决过程】
1.找了半天,
最终是参考:
[Tutor] argparse: how to use the returned Namespace object?
使用__dict__的方式
1 2 3 4 5 6 7 8 9 10 | 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)= <class 'argparse.Namespace'> argsDict = args.__dict__; print "parsed argsDict=" ,argsDict; #parsed argsDict= {'age_argparse': 1000, 'username_argparse': 'crifanLi'} |
然后再通过argsDict.keys()就可以得到对应的key了。
2. 另外也参考:
Log the values of argparse in python
知道了,也可以通过vars()的方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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)= <class 'argparse.Namespace'> 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)了。
转载请注明:在路上 » 【已解决】python中枚举(enumerate/iterate)域名(namespace)变量