我是argparse的新手,不知道如何设置互变量的默认值。特别是:
我有两个变量,应该只设置其中一个。例如:
import argparse
PARSER = argparse.ArgumentParser()
GROUP = PARSER.add_mutually_exclusive_group()
GROUP.add_argument(
'--a',
type=int,
nargs='?',
const=1,
default=1)
GROUP.add_argument(
'--b',
type=int)
PARSER.set_defaults(train_pass=1)
预期的行为是:
最多可以设置a和b之一。
如果a和b均未设置,则a应该默认为1,b应该没有。
但是,即使我提供task.py --b 10,它仍然会将a的值设置为1。
我检查了以下答案:Set the default to false if another mutually exclusive argument is true,但它做了不同的事情。当设置为b时,它希望该值为默认值(即此处为1),而不是无。
感谢您的帮助。非常感谢你!