忽略某些标志的空参数

Ignoring empty arguments for certain flags

我有一个带有 1 个参数并且可以带有多个标志的命令。

@click.command()
@click.argument('item')
@click.option('--list-items', help='list items', is_flag=True)
def cli(item, list_items):
    if list_items:
        click.echo(ITEMS)
        return

目前 returns:

Error: Missing argument "item".

我怎样才能在不提供参数的情况下访问 --list-items 的功能?就像 --help 标志一样。

您必须将 item 设为可选:

@click.argument('item', required=False)

然后在函数中进行错误处理(例如引发BadParameter() exeception)。

您将其设为必填参数,通过添加 required= False 或为其添加默认值使其成为可选参数