是否可以在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相同
答案 0 :(得分:3)
您可以省略--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
永远不是“虚假”,那么 给出的最后一种方法只会