是否可以在argparse中使用另一个选项值作为默认值
parser.add_argument("--num-1", default='1', help="[OPTIONAL] arg 1")
parser.add_argument("--num-2", default='1', help="[OPTIONAL] arg 2")
在这里,如果没有默认值传递给 --num-2,我想使用与num_1默认值或输入值相同的值。
parser.parse_args("--num-1 10".split())
命名空间(num_1='10', num_2='1'( # 即num_2应该与num_1相同
您可以省略--num-2
的可选值。这意味着如果未给出任何值,默认值将为None
。然后,您可以在接收命令行参数后测试是否是这种情况。如果--num2
None
,则将其设置为等于--num-1
的值:
parser.add_argument("--num-1", default='1', help="[OPTIONAL] arg 1")
parser.add_argument("--num-2", help="[OPTIONAL] arg 2")
...
args = parser.parse_args()
if args.num_2 is None:
args.num_2 = args.num_1
或者更简洁地说:
args.num_2 = args.num_1 if args.num_2 is None else args.num_2
更简洁的是:
args.num_2 = args.num_2 or args.num_1
但请注意,给出的最后一种方法只有在--num-2
永远不会是"假的"时才有效