我添加了一个参数-c,现在我想添加另一个名为-ca的参数。如何将-ca的默认值设置为-c?我想要做的是如果未指定-ca,则将-c指定给-ca。
parser.add_argument("-c", type=str)
parser.add_argument("-ca", type=str, default=XXX)
感谢。
答案 0 :(得分:3)
通常,单个破折号标志是单个字符。所以-ca
是不明智的,虽然不是非法的。在正常的POSIX实践中,它可以被解释为-c a
或-c -a
。
同样argparse
允许标记的参数(optionals
)以任何顺序发生。
通过分配所有默认值开始解析。遇到相关标志时,新值将覆盖默认值。鉴于该顺序,一个参数不可能将另一个参数的值视为默认值。
通常,在解析之后最好处理参数之间的交互。有一个mutually_exclusive
分组,但没有mutually_inclusive
。您可以通过自定义Action
类构建某种交互,但实现它与任何解析后测试一样多。
总而言之,最简单的方法是使用默认的default
,None
和测试
if args.ca is None:
args.ca = args.c