Python 相互排斥的论点组?
我有一个Python文件,其中包含源代码中的单元测试。它的工作原理如下:Python 相互排斥的论点组?,python,argparse,Python,Argparse,我有一个Python文件,其中包含源代码中的单元测试。它的工作原理如下: parser = argparse.ArgumentParser() parser.add_argument('--test', action='store_true', help="Run unit tests and return.") args = parser.parse_args() if args.test: testsuite = unittest.TestLoader().loadTestsFr
parser = argparse.ArgumentParser()
parser.add_argument('--test', action='store_true', help="Run unit tests and return.")
args = parser.parse_args()
if args.test:
testsuite = unittest.TestLoader().loadTestsFromTestCase(SanitizeTestCase)
unittest.TextTestRunner(verbosity=1).run(testsuite)
如果
args.test
为false,则程序按预期运行。我不想把它变成一个完整的setuptools
项目,它是一个非常简单的脚本,带有一些单元测试来评估它是否完成了它应该做的事情
我现在发现自己需要解析其他参数,而这正是事情开始分崩离析的地方--test
是一个互斥参数,如果通过了--test
,则所有其他参数都不适用
有没有办法在argparse中拥有互斥的参数组?有一种
互斥组
机制,但该组中的所有参数都是互斥的。你不能说,--test
xor其他任何一个
但这样一个团体并没有做任何深刻的事情。它在用法
行中添加了一些标记(试试),当您的用户(您自己?)违反排他性时,它会抱怨
你可以自己做同样的事情,并对它们进行微调。您可以为
解析器
提供自定义用法
行。解析后,您可以选择忽略冲突的值,也可以选择发出自己的错误消息(parser.error('dumb user,cant you read…?')
)。例如,如果此args.test
为True
,则可以忽略所有其他参数,而不考虑其值。您是否查看过?setuptools
项目的优点是它们可以由pip安装(和卸载)。这些其他参数是否相互排斥?