无论何时使用单击创建命令或组,都会有一个默认的--help选项来显示使用指南:

import click

@click.command()
def main():
    click.echo('Success!')

if __name__ == '__main__':
    main()

如果我使用--help运行文件,我应该得到:

$ python file.py --help
Usage: file.py [OPTIONS]

Options:
--help  Show this message and exit.

现在,单击允许您通过decorator中的参数覆盖通过终端调用help选项的方式:

@click.command(
    context_settings=dict(
        help_option_names=['-f', '--foo']
    )
)
def main():
    click.echo('Success!')
$ python file.py -f
Usage: file.py [OPTIONS]

Options:
-f, --foo  Show this message and exit.

然而,翻阅Click的documentation,我看不到类似的选项来覆盖默认的帮助message.


是否有一个参数指定为click.command,在终端中调用帮助时覆盖文本"Show this message and exit"

推荐答案

您可以使用help_option decorator更改click的默认帮助选项

示例代码:

@click.command(add_help_option=False)
@click.help_option('--foo', '-f', help='Show my better message and exit')
def main():
    """The docstring is the Help Message"""
    click.echo('Success!')

测试代码:

if __name__ == "__main__":
    print('Click Version: {}'.format(click.__version__))
    print('Python Version: {}'.format(sys.version))
    print('-----------')
    cmd = 'main --foo'
    print('> ' + cmd)
    main(cmd.split())

试验结果:

Click Version: 8.1.3
Python Version: 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)]
-----------
> main --foo
Usage: test_code.py [OPTIONS]

  The docstring is the Help Message

Options:
  -f, --foo  Show my better message and exit

Python相关问答推荐

在函数内部使用eval(),将函数的输入作为字符串的一部分

运行回文查找器代码时发生错误:[类型错误:builtin_index_or_system对象不可订阅]

滚动和,句号来自Pandas列

难以在Manim中正确定位对象

Vectorize多个头寸的止盈/止盈回溯测试pythonpandas

将图像拖到另一个图像

Telethon加入私有频道

pyscript中的压痕问题

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

如何在UserSerializer中添加显式字段?

为什么if2/if3会提供两种不同的输出?

OpenGL仅渲染第二个三角形,第一个三角形不可见

计算空值

pandas fill和bfill基于另一列中的条件

从一个df列提取单词,分配给另一个列

如何获得3D点的平移和旋转,给定的点已经旋转?

如何设置nan值为numpy数组多条件

从列表中分离数据的最佳方式

与同步和异步客户端兼容的Python函数

如何在Quarto中的标题页之前创建序言页