命令行选项

位置命令行参数

位置命令行参数通过 ‘positional’ Opt 构造函数参数支持

>>> conf = cfg.ConfigOpts()
>>> conf.register_cli_opt(cfg.MultiStrOpt('bar', positional=True))
True
>>> conf(['a', 'b'])
>>> conf.bar
['a', 'b']

默认情况下,位置参数也是必需的。 您可以通过设置 required=False 来选择退出此行为,从而拥有可选的位置参数。

子解析器

也可以使用 argparse “子解析器” 通过 SubCommandOpt 类来解析额外的命令行参数

>>> def add_parsers(subparsers):
...     list_action = subparsers.add_parser('list')
...     list_action.add_argument('id')
...
>>> conf = cfg.ConfigOpts()
>>> conf.register_cli_opt(cfg.SubCommandOpt('action', handler=add_parsers))
True
>>> conf(args=['list', '10'])
>>> conf.action.name, conf.action.id
('list', '10')