我想在argparse中创建以下情况。
如果--bar
为true,则 --foo
必须为true。
parser.add_argument('--foo', action='store_true', default=False)
parser.add_argument('--bar', action='store_true', default=False)
然后:
% my_prog => args.foo is False, args.bar is False
% my_prog --bar => args.foo is False. args.bar is True
% my_prog --foo => args.foo is True, args.bar is True
我可以在argparse中执行此操作,还是需要测试args.foo
并相应地设置args.bar
?那似乎不对。我以为有一种方法可以将参数与可以执行检查的函数相关联。
答案 0 :(得分:1)
我不认为argparse可以做到这一点,但是您可以单行完成:
args.bar |= args.foo
答案 1 :(得分:0)
在解析后执行此操作很有意义。我的意思是这并不是解析本身的一部分。您只需在帮助文本和代码中写出“ --foo暗含--bar”之类的字样,
if args.foo:
args.bar = True