我有以下测试代码
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbose", default = 0, type=int)
subparsers = parser.add_subparsers(dest = "parser_name")
parser_lan = subparsers.add_parser('car')
parser_lan.add_argument("--boo")
parser_lan.add_argument("--foo")
parser_serial = subparsers.add_parser('bus')
parser_serial.add_argument("--fun")
print parser.parse_args()
它定义了两个子解析器,具有不同的参数集。当我将测试代码称为
tester.py --verbose 3 car --boo 1 --foo 2
我得到了预期的结果
Namespace(boo='1', foo='2', parser_name='car', verbose=3)
相反,我想要的是来自每个子解析器的值在单独的命名空间或字典中,例如
Namespace(subparseargs={boo:'1', foo:'2'}, parser_name='car', verbose=3)
以便每个子解析器的参数与主解析器的参数逻辑分离(如verbose
本例所示)。
如何使用同一命名空间中的每个子解析器的参数来实现这一点(subparseargs
在示例中)。