我尝试构建一个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中包含解析器选项,也会设置默认值。
无论如何要运行它?
答案 0 :(得分:0)
您只需使用default
而不是required
fulllist_parser.add_argument(
'--type',
default="VirtualMachine",
type=str,
help='Object type, e.g. Network, VirtualMachine.'
因为如果没有指定,你会得到默认值(所以你总是得到一个值)。看看documentation:
add_argument()的默认关键字参数,其值默认为None,指定在命令行参数不存在时应使用的值。对于可选参数,当命令行中没有选项字符串时使用默认值