使用点击包:选择一个选项`int`
问题描述:
我试图让一个click.option
是数字0
,1
和2
之间的选择。我尝试这样做:使用点击包:选择一个选项`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但限制以配合到 范围值。如果该值落在 范围之外,则默认行为是失败的,但它也可以在两个边缘之间静默地夹紧。