2

我尝试构建一个 argparser,其中一个解析器应该具有默认值,并且也是必需的。到目前为止,我有以下内容:

   fulllist_parser.add_argument(
    '--type',
    required=True,
    default="VirtualMachine",
    type=str,
    help='Object type, e.g. Network, VirtualMachine.'

当我从 CLI 运行它时,我收到一个错误:

 supdeploy fulllist: error: argument --type is required

我明白为什么会出现这种情况,因为我不包括--type在 CLI 中。这就是我想要实现的,即使我没有在 CLI 上包含解析器选项,也会设置默认值。

无论如何要运行这个?

4

1 回答 1

0

你只需要使用default,没有required

fulllist_parser.add_argument(
  '--type',
  default="VirtualMachine",
  type=str,
  help='Object type, e.g. Network, VirtualMachine.'

因为如果没有指定,你会得到默认值(所以你总是会得到一个值)。看看文档

add_argument() 的默认关键字参数,其值默认为 None,指定如果命令行参数不存在应使用的值。对于可选参数,当命令行中不存在选项字符串时使用默认值

于 2015-10-14T12:58:05.663 回答