我不明白为什么子类化 aHelpFormatter
应该是一个问题。这并没有弄乱ArgumentParser
. 该文档包含自定义Action
和Type
类(或函数)的示例。如果需要,我'there are four such classes'
会邀请我编写自己的 HelpFormatter。
提供的HelpFormatter
子类进行了非常简单的更改,只更改了一个函数。因此它们可以很容易地被复制或更改。
RawDescription
只是改变:
def _fill_text(self, text, width, indent):
return ''.join(indent + line for line in text.splitlines(keepends=True))
从理论上讲,它可以在不更改 API 的情况下进行更改,但不太可能。
默认格式化程序只是更改:
def _get_help_string(self, action):
help = action.help
if '%(default)' not in action.help:
if action.default is not SUPPRESS:
defaulting_nargs = [OPTIONAL, ZERO_OR_MORE]
if action.option_strings or action.nargs in defaulting_nargs:
help += ' (default: %(default)s)'
return help
只需%(default)s
在所有论点帮助行中加入即可获得相同的效果。与Raw
子类相比,这只是一个便利类。它不能让您更好地控制格式。