【发布时间】:2020-11-17 19:07:47
【问题描述】:
在我的项目中,我主要使用 docopt,但 to overcome a limitation 我正在为一个函数切换到 argparse。但是,为了保持一致性,当我键入-h 或--help 时,我仍想打印我自己的文档字符串。令人惊讶的是,我找不到如何做到这一点。
这不起作用:
parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS, help=__doc__)
因为它给出了
argparse.ArgumentError: argument -h/--help: conflicting option strings: -h, --help
但是我必须做什么?
【问题讨论】:
-
@SerialLazer 谢谢。我不确定……或者更确切地说,我不这么认为。当
argparse打印文档字符串时,我想做的只是为了打印其他东西,我不想在它上面添加一个选项。但也许我忽略了什么? -
--help默认包含;所以这就是为什么添加你自己的会产生冲突。有一个ArgumentParser参数可以关闭自动帮助参数。指定help=__doc__无济于事,因为它只是更改了常规帮助显示中的帮助行。它不会改变整个显示。