假设我们具有以下功能,
具有可选参数exclude
,这是预期的
成为字符串列表:
@group.command()
@click.option(???)
def load(exclude = None):
# ...
我希望用户能够像这样执行脚本:
python script.py load --exclude one two three
或
python script.py load --exclude something
在这种情况下,我希望exclude
为
['one', 'two', 'three']
和['something']
。
但是我希望--exclude
中的值的数量是可变的,包括0。用户应该能够执行
python script.py load
在这种情况下,exclude
应该为None
(或[]
,没关系)。
如何使用点击操作?
到目前为止,我唯一可行的选择是强制用户使用
python script.py load --exclude "one two three"
然后调用exclude.split()
,但是更清洁的方法会更好。
答案 0 :(得分:0)
似乎没有按您想要的方式受到支持,方法是单击:
根据文档Multi Value Options,必须具有nargs
中指定的选项数量,因此nargs=2
需要2个值。
此外,multiple options不会否定多次传递该选项的需要。
您最可能的解决方案是传递字符串和拆分,尽管我没有对Click进行过深入的研究,所以有人可能会有更好的解决方案。