mode
add_parser()
这对你有好处。
myparser = argparse.ArgumentParser(prog='test')
# myparser.add_argument('mode', choices=['A', 'B']) # Don't think you need this
subparsers = myparser.add_subparsers()
a_parser = subparsers.add_parser('A')
b_parser = subparsers.add_parser('B')
a_parser.add_argument('frog',action='store')
b_parser.add_argument('toad',action='store')
args = myparser.parse_args(['A', 'frogname'])
print(args)
>>> Namespace(frog='frogname')
如果mode是除了选择子parser之外还需要设置的单独参数,则需要单独传递该参数
myparser = argparse.ArgumentParser(prog='test')
myparser.add_argument('mode', choices=['A', 'B'])
subparsers = myparser.add_subparsers()
a_parser = subparsers.add_parser('A')
b_parser = subparsers.add_parser('B')
a_parser.add_argument('frog',action='store')
b_parser.add_argument('toad',action='store')
args = myparser.parse_args(['A', 'A', 'frogname'])
print(args)
>>> Namespace(frog='frogname', mode='A')