Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 相互排斥的论点组?_Python_Argparse - Fatal编程技术网

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

我有一个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().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安装(和卸载)。这些其他参数是否相互排斥?