区分子解析器参数
好吧,如果我有一个像这样的解析器,
example = argparse.ArgumentParser(description='main parser')
example.add_argument('Kill')
subexample = example.add_subparsers()
person = subexample.add_parser('who')
person.add_argument('name')
person.add_argument('address')
animal = subexample.add_parser('what')
animal.add_argument('name')
args = parser.parse_args()
如果我使用 args.name(),它会给我什么?我如何指定我真正想要的名称? args.animal.name()?我不确定,请帮忙。顺便说一句,我不支持杀害动物,我只是没有想到很多有创意的例子。
Ok so If I have a parser like this
example = argparse.ArgumentParser(description='main parser')
example.add_argument('Kill')
subexample = example.add_subparsers()
person = subexample.add_parser('who')
person.add_argument('name')
person.add_argument('address')
animal = subexample.add_parser('what')
animal.add_argument('name')
args = parser.parse_args()
If I use args.name(), what is it going to give me? How can I specify which name I actually want? args.animal.name()? I am unsure, please help. And by the way I don't support killing animals I just didn't have many creative example I could think of.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如您在 文档 中看到的,有
dest
参数。add_subparsers()
的该参数告诉子解析器的变量名必须存储在哪个变量中。
如果您在代码中使用:
那么,在解析参数后,您可以将它们用作:
As you can see in documentation, there is
dest
argument toadd_subparsers()
.This argument tells in which variable name of the subparser must be stored.
If you use in your code:
Then, after parsing arguments you can use them as:
使用 set_defaults:
运行产量
Use set_defaults:
Running yields