在 Python 的 Click 包中,我可以为选项定义默认值:

@click.option("--count", default=1, help="Number of greetings.")

我可以指定在帮助中显示默认值:
@click.option("--count", default=1, help="Number of greetings.", show_default=True)

如果我有很多选择
@click.option("--count-a", default=1, help="...")
@click.option("--count-b", default=2, help="...")
@click.option("--count-c", default=4, help="...")
.
.
.

我怎么能告诉 Click generically 总是在帮助中显示默认值(没有明确地将 show_default=True 添加到每个单独选项的参数列表中)?

最佳答案

你可以很容易地定义你自己的函数,比如:

代码

def click_option(*args, **kwargs):
    return click.option(*args, show_default=True, **kwargs)

或者,如果您想在单个选项装饰器中覆盖 show_default:
def click_option(*args, **kwargs):
    if not 'show_default' in kwargs:
        kwargs.update({'show_default': True})
    return click.option(*args, **kwargs)

测试代码:
import click

def click_option(*args, **kwargs):
    if not 'show_default' in kwargs:
        kwargs.update({'show_default': True})
    return click.option(*args, **kwargs)

@click.command()
@click_option('--an-option', default='The Default')
def cli(an_option):
    """An Awesome CLI"""

if __name__ == "__main__":
    cli(['--help'])

结果:
Usage: test.py [OPTIONS]

  An Awesome CLI

Options:
  --an-option TEXT  [default: The Default]
  --help            Show this message and exit.

关于python - 如何告诉单击始终显示选项默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57550012/

10-15 05:17