Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 隐藏值列表以防使用-单击_Python_Python 2.7_Command Line Interface_Python Click - Fatal编程技术网

Python 隐藏值列表以防使用-单击

Python 隐藏值列表以防使用-单击,python,python-2.7,command-line-interface,python-click,Python,Python 2.7,Command Line Interface,Python Click,我正在使用click.Choice确定传递给命令选项的值是否存在于列表中 列表很长,当打印使用信息时,很难阅读 是否可以使用click.Choice而不在用法消息中显示所有可能值的列表 我知道我可以不用单击来验证它。选择,但是如果有一种方法可以用单击来验证它会更好。该类使用一个参数来允许在帮助消息中显示任意文本 代码: 测试代码: 测试结果: @click.option('--a_choice', metavar='MY_AWESOME_CHOICES', type=click.Choice

我正在使用
click.Choice
确定传递给命令选项的值是否存在于列表中

列表很长,当打印使用信息时,很难阅读

是否可以使用
click.Choice
而不在用法消息中显示所有可能值的列表

我知道我可以不用单击来验证它。选择,但是如果有一种方法可以用单击来验证它会更好。

该类使用一个参数来允许在帮助消息中显示任意文本

代码: 测试代码: 测试结果:

@click.option('--a_choice', metavar='MY_AWESOME_CHOICES', type=click.Choice(a_long_list))
import click

@click.command()
@click.option('--a_choice', metavar='MY_AWESOME_CHOICES',
              type=click.Choice([str(j) for j in range(30)]))
def cli(a_choice):
    click.echo("'{}': {}\n".format(cmd, a_choice))

cmds = (
    '--help',
    '--a_choice 5',
    '--a_choice 10',
)

for cmd in cmds:
    try:
        cli(cmd.split())
    except Exception:
        raise
    except:
        pass
Usage: test.py [OPTIONS]

Options:
  --a_choice MY_AWESOME_CHOICES
  --help                         Show this message
                                 and exit.
'--a_choice 5': 5
'--a_choice 10': 10