使用点击包:选择一个选项`int`

问题描述:

我试图让一个click.option是数字0,12之间的选择。我尝试这样做:使用点击包:选择一个选项`int`

@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的选择,那会更好。

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

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

的参数 的作品相似,click.INT但限制以配合到 范围值。如果该值落在 范围之外,则默认行为是失败的,但它也可以在两个边缘之间静默地夹紧。

From the docs.