14

我正在使用click库。

在我的代码中,有时我想打印帮助信息,但我知道的唯一方法是:

python xxx --help

但是我想使用某个函数在我的代码中打印帮助信息,例如:

click.print_help_msg()

有这样的功能吗?

4

4 回答 4

19

您可以使用 Command 的get_help方法

import click

@click.command()
@click.option('--name', help='The person to greet.')
def hello(name):
    """Simple program that greets NAME."""
    click.echo('Hello %s!' % name)

def print_help_msg(command):
    with click.Context(command) as ctx:
        click.echo(command.get_help(ctx))

>> print_help_msg(hello)
于 2017-04-03T07:00:46.137 回答
17

在 click 5.x 中,您现在可以使用以下get_current_context()方法:

def print_help():
    ctx = click.get_current_context()
    click.echo(ctx.get_help())
    ctx.exit()

如果您只想打印错误消息并退出,请尝试:

def exit_with_msg():
    ctx = click.get_current_context()
    ctx.fail("Something unexpected happened")
于 2019-02-20T07:08:07.763 回答
-1

你可以使用click.echo这样的东西:

click.echo('FooBar')

echo还支持基于类型的颜色代码和过滤,例如:

click.echo('FooBar', err=True)

您可以参考文档以获得更多理解。

于 2017-03-31T12:41:11.217 回答
-2

我修改了click文档上的示例并想出了这个,虽然我以前没有使用过,或者测试了下面的代码。

@click.command()
@click.option('--help')
def help():
    """Simple program that greets NAME for a total of COUNT times."""
    for x in range(count):
        click.echo(get_help_message())

def get_help_message():
    return "I AM A HELP MESSAGE!"

这样的事情行不通吗?

于 2017-03-31T12:29:25.023 回答