为了账号安全,请及时绑定邮箱和手机立即绑定

选择的选项激活正确的次级解析器

选择的选项激活正确的次级解析器

长风秋雁 2021-04-07 13:15:24
我必须以这种方式调用我的脚本。 script.py multiple --ways aa bb -as abab -bs bebe 在这种情况下-as abab,将--ways参数的参数改为“ aa”选项,-bs bebe将其改为“ bb”选项。并且所有选择的选项都将影响将使用的“实现”方法。如果我们选择“ aa”和“ bb”,则应该只有选项“ -as”和“ -bs”,而不是“ -cs”。import sysfrom argparse import ArgumentParserdef fulfill_aa_parser(aa_parser):    aa_parser.add_argument('--ass', '-as', type=str, required=True, choices=['abababa'])def fulfill_bb_parser(aa_parser):    aa_parser.add_argument('--bass', '-bs', type=str, required=True, choices=['bebebe'])def fulfill_cc_parser(aa_parser):    aa_parser.add_argument('--cass', '-cs', type=str, required=True, choices=['cycycyc'])def fulfill_multiple_parser(multiple_parser):    multiple_parser.add_argument('--ways', '-w', type=str, choices=['aa','bb', 'cc'], nargs='+', required=True)def main(argv):    parser = ArgumentParser(description='TEST CASE')    subparsers = parser.add_subparsers(dest='type')    multiple_parser = subparsers.add_parser(        'multiple'    )    aabbparsers = multiple_parser.add_subparsers()    aa_parser = aabbparsers.add_parser('aa')    bb_parser = aabbparsers.add_parser('bb')    cc_parser = aabbparsers.add_parser('cc')    fulfill_multiple_parser(multiple_parser)    fulfill_aa_parser(aa_parser)    fulfill_bb_parser(bb_parser)    fulfill_cc_parser(cc_parser)    args = parser.parse_args(argv)    if args.type is None:        parser.print_help()        returnif __name__ == '__main__':    main(sys.argv[1:])以这种方式解析:    fulfill_aa_parser(multiple_parser)    fulfill_bb_parser(multiple_parser)    fulfill_cc_parser(multiple_parser)会导致解析器始终要求'-as','-bs','-cs'和'--ways'中的选项不会对此产生影响编辑:\这是当它有一些想法时看起来。只需将解析器传递给此函数def fulfill_apple_argparser(parser):    parser.add_argument("--apple_argument")def fulfill_banana_argparser(parser):    parser.add_argument("--banana_argument")def fulfill_peach_argparser(parser):    parser.add_argument("--peach_argument")
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号