命令行选项¶
位置命令行参数¶
位置命令行参数通过 ‘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')