第十四章:应用构建模块-argparse:命令行选项和参数解析-解析器组织-共享解析器原则

14.1.6 解析器组织
argparse包含很多用于组织参数解析器的特点,以实现或者改善帮助输出的可用性。

14.1.6.1 共享解析器原则
程序员通常需要实现一组命令行工具,它们都取一组参数,然后完成某种特殊化动作。例如,如果程序在采取具体行动之前都需要认证用户,那么它们就都需要支持–user和–password选项。不必显式地将这些选项增加到每一个ArgumentParser,完全可以用这些共享选项定义一个父解析器,然后让各个程序的解析器继承这个父解析器的选项。
第一步是用共享参数定义来建立解析器。由于父解析器的各个后续用户会尝试增加相同的帮助选项,而这会导致一个异常,所以要在基解析器中关闭自动帮助生成。

import argparse

parser = argparse.ArgumentParser(add_help=False)

parser.add_argument('--user',action="store")
parser.add_argument('--password',action="store")

接下来,用gparents集合创建另一个解析器。

import argparse
import argparse_parent_base

parser = argparse.ArgumentParser(
    parents=[argparse_parent_base.parser],
    )

parser.add_argument('--local-arg',
                    action="store_true",
                    default=False)

print(parser.parse_args())

得到的程序将有三个选项。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43193719/article/details/93121881