2016-10-01 14 views
2

我試圖讓一個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的選擇,那會更好。

回答

2

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

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

的參數 的作品相似,click.INT但限制以配合到 範圍值。如果該值落在 範圍之外,則默認行爲是失敗的,但它也可以在兩個邊緣之間靜默地夾緊。

From the docs.

相關問題