Argparser具有默认值且必需

时间:2015-10-14 12:53:25

标签: python subparsers

我尝试构建一个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

我知道为什么会这样,因为我没有在CLI上包含--type。 这就是我想要实现的,即使我没有在CLI中包含解析器选项,也会设置默认值。

无论如何要运行它?

1 个答案:

答案 0 :(得分:0)

您只需使用default而不是required

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

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

  

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