使用click包:使选项成为`int`的选择

时间:2016-10-01 18:50:41

标签: python click

我正在努力让click.option成为数字012之间的选择。我试过这个:

@click.Option('--verbosity', default=1, type=click.Choice([0, 1, 2]))
def f():
    # ...
    pass

但我得到例外TypeError: sequence item 0: expected str instance, int found。我想click只需要click.Choice中的字符串。有什么办法让它接受整数?我知道我可以在收到后手动转换为int,但是如果有一种惯用的方式来接收int选项,那就更好了。

1 个答案:

答案 0 :(得分:2)

您可以使用IntRange(min=0, max=2)

  

class click.IntRange(min=None, max=None, clamp=False)

     

参数   与click.INT类似,但限制值适合a   范围。如果值超出范围,则默认行为将失败   范围,但它也可以无声地夹在两个边缘之间。

From the docs.