Python 覆盖帮助字符串

Python 覆盖帮助字符串,python,argparse,Python,Argparse,在我的项目中,我主要使用docopt,但我正在为一个函数切换到argparse。但是,为了保持一致性,我希望在键入-h或-help时仍打印自己的文档字符串。令人惊讶的是,我找不到如何做到这一点 这不起作用: parser.add_参数('-h'、'-help',action='help',default=argparse.SUPPRESS,help=\uu doc\uuuuu) 正如它所给 argparse.ArgumentError: argument -h/--help: conflict

在我的项目中,我主要使用docopt,但我正在为一个函数切换到argparse。但是,为了保持一致性,我希望在键入
-h
-help
时仍打印自己的文档字符串。令人惊讶的是,我找不到如何做到这一点

这不起作用:

parser.add_参数('-h'、'-help',action='help',default=argparse.SUPPRESS,help=\uu doc\uuuuu)
正如它所给

argparse.ArgumentError: argument -h/--help: conflicting option strings: -h, --help

但是我要说什么呢?

我发现一个解决方案是覆盖默认的
print\u help
函数,如下所示:

import argparse
类解析器(argparse.ArgumentParser):
def打印帮助(自助):
打印(文档)
parser=parser()
add_参数('-f','-foo',required=False)

这是否回答了您的问题@谢谢。我不确定。。。或者更确切地说,我不这么认为。当
argparse
将打印docstring时,我想做的只是弹出其他东西,我不想在上面添加选项。但也许我忽略了什么?
——默认情况下会包括help
;这就是为什么添加您自己的会产生冲突。有一个
ArgumentParser
参数用于关闭自动帮助参数。指定
help=\uuuuu doc\uuuu
没有帮助,因为只会更改常规帮助显示中的帮助行。它不会改变整个显示。我认为这是最好的
ipython
在使用
argparse
解析器之前,通过查看
sys.argv
完成类似的操作。换句话说,它首先捕获
help
命令。