如何禁止两个相互冲突的选项

2023-11-22

有没有办法向 Python 的 ArgumentParser 指定两个可选标志发生冲突?

arg_parser.add_argument('-c', '--clean', action='store_true')
arg_parser.add_argument('-d', '--dirty', action='store_true')

我希望用户能够指定其中任何一个或仅指定一个。

是否可以在没有其他条件的情况下实现?


添加一个怎么样互斥组:

group = arg_parser.add_mutually_exclusive_group()
group.add_argument('-c', '--clean', action='store_true')
group.add_argument('-d', '--dirty', action='store_true')

这样我得到以下行为:

>>> arg_parser.parse_args(['--clean']) 
Namespace(clean=True, dirty=False)
>>> arg_parser.parse_args(['--dirty']) 
Namespace(clean=False, dirty=True)
>>> arg_parser.parse_args(['--dirty','--clean']) 
usage: PROG [-h] [-c | -d] PROG: error: argument -c/--clean: not allowed with argument -d/--dirty
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何禁止两个相互冲突的选项 的相关文章

随机推荐

  • Twig Variable 方法的变量

    我正在尝试做一些在 PHP 中非常简单的事情 但在 twig 中就不那么容易了 基本上 我需要调用类方法 但我需要能够定义通过字符串调用的方法 我有3种方法 getControlvs getControlnc and getControlt
  • C# 中“internal”关键字的实际用途

    您能否解释一下实际用途是什么internalC 中的关键字 我知道internal修饰符限制对当前程序集的访问 但是何时以及在什么情况下应该使用它 您希望从同一程序集中的许多其他类访问的实用程序或帮助程序类 方法 但您希望确保其他程序集中的
  • Rails 本地服务器错误:没有这样的文件database.yml

    我正在与另一位开发人员一起开发一个项目 在尝试启动本地服务器时遇到错误 缺少数据库 yml 我只是使用 sqlite 另一个开发人员正在使用 mongrel 因此我没有 database yml 文件 我没有使用 Mongrel 因为我使用
  • gcc 共享库无法链接到 glibc

    我正在 Linux 64 位下使用 Eclipse CDT 编写一个简单的 C 共享库 该代码有一个对rand 函数在
  • 什么是类型安全?

    我最近参加了一次脑力测试 获得了高分 但是有几个问题对我来说很难 也许是因为英语不是我的母语 问题之一是 以下哪一项描述了类型安全 用于确保 CLR 中引用和值类型安全的编程构造 防止由于禁止非托管访问而导致内存泄漏 特定于 CLR 的功能
  • 等待扇出交换上的所有rabbitmq响应?

    我配置了一个名为 的rabbitmq扇出交换 ex foo 对于 RPC 工作负载 当客户端连接到服务器时 它们会创建自己的非持久 RPC 接收队列并使用 BasicConsumer 连接到它 应用程序侦听消息 命令并响应在reply to
  • Cuda虚拟课堂

    我想在 cuda 内核中执行一些虚拟方法 但我不想在同一内核中创建对象 而是想在主机上创建它并将其复制到 gpu 内存 我成功地在内核中创建对象并调用虚拟方法 复制对象时会出现问题 这是有道理的 因为显然虚函数指针是假的 发生的事情只是 C
  • 如何在 MATLAB 中不排序而从 A 中删除集合 A 和 B 的交集?

    两个矩阵 A 和 B A 1 2 3 9 7 5 4 9 4 1 4 7 B 1 2 3 1 4 7 矩阵B的所有行都是矩阵A的成员 我希望从A中删除A和B的公共行而不排序 我尝试过 setdiff 但这对输出进行了排序 对于我的特殊问题
  • 在堆栈中搜索特定元素

    我对移植感兴趣这段Python代码到 C 作为端口的一部分 我正在使用std stack来自
  • 无法将“org.springframework.web.multipart.commons.CommonsMultipartFile”类型的值转换为所需类型

    我有以下控制器方法 RequestMapping value owner terminals save method RequestMethod POST public String saveTerminal RequestParam va
  • click() jquery 函数在新 div 上不可用

    在我的网站运行期间 我使用 jquery 和 a 类创建新的 div 我为 a 类定义了一个 click 函数 如下所示 document ready function a click function a hide 问题是 使用同一类创建
  • 如何以编程方式结束 2.3+ 上的通话?

    直到 Android 2 2 我知道我可以使用反射并通过 getITelephony 终止呼叫 但是 从 2 3 开始 这不再有效 因为即使您向应用程序授予 MODIFY PHONE STATE 权限 它现在也只是系统应用程序的权限 htt
  • 使用 Selenium + Python 循环链接并从结果页面中抓取数据[重复]

    这个问题在这里已经有答案了 我是 Selenium 的新手 需要抓取一个包含链接列表的网站 其结构如下 a class unique href i class something i Text span class something Te
  • 为什么 C 和 C++ 中 NULL 指针的定义不同?

    In C NULL定义为 void 0而在 C 中则是0 为什么会这样呢 在C中我可以理解如果NULL不是类型转换为 void 那么编译器可能 可能不会生成警告 除了这个 还有什么原因吗 早在 C 03 中 ISO 规范 4 10 1 将空
  • 如何更改通过 WindowManager 添加的窗口的 z 顺序?

    是否可以指定每个窗口的 z 顺序 在下图中 每个 editText 都位于通过 WindowManager 添加的自己的窗口中 正如你所看到的 我有一个 z 顺序问题 就像你在图片上看到的那样最后添加的窗口接缝采用更高的 z 顺序 因此 我
  • 在 Linux 上安装 PyQt5 5.14.1

    pip3 install PyQt5 Collecting PyQt5 Using cached https files pythonhosted org packages 3a fb eb51731f2dc7c22d8e1a63ba88f
  • 设置捆绑值返回 nil

    我向我的应用程序添加了一个 设置 包 在 Xcode 中 它出现在我的项目树视图的根目录中 The Root plist文件看起来像这样
  • 可以对 Julia 代码进行逐行分析吗?

    我有一些长达数百行的 Julia 函数 我想对其进行分析 以便我可以优化代码 我知道基准测试工具包允许使用以下命令测量函数的总体执行时间和内存消耗 btime or benchmark 但这些函数没有告诉我函数内部的瓶颈在哪里 因此 我的第
  • findall/3 在其结果列表中创建新的、不相关的变量

    permutation A B C Z Z A B C Z A C B Z B A C Z B C A Z C A B Z C B A false 说得通 我可以研究以下的排列 A B C 并且该排列包含与中相同的元素 A B C 所以我对
  • 如何禁止两个相互冲突的选项

    有没有办法向 Python 的 ArgumentParser 指定两个可选标志发生冲突 arg parser add argument c clean action store true arg parser add argument d