6

我的 CLI 程序使用一个--debug标志来决定是否打印调试消息。指定时--debug,应打印调试消息;否则,它不应该打印调试消息。

我目前的做法是:

parser.add_argument('--debug', help='print debug messages to stderr', nargs='?')

但是,该--help消息表明这种方法无法实现我的目标:

optional arguments:
  -h, --help       show this help message and exit
  --debug [DEBUG]  print debug messages to stderr

如您所见,它需要标志后面的值;但是,--debug是一个开/关参数。

我应该怎么做?

4

1 回答 1

9

请改用该store_true操作:

parser.add_argument(
    '--debug',
    action='store_true', 
    help='print debug messages to stderr'
)

nargs='?'应该只用于带有一个或多个参数的选项(回退到默认值)。

于 2012-11-16T11:13:42.690 回答