Python 传递零个或可变数量的值以单击。选项

Python 传递零个或可变数量的值以单击。选项,python,command-line-interface,python-click,Python,Command Line Interface,Python Click,假设我们有以下函数,其中 具有一个可选参数exclude,应为 要成为字符串列表,请执行以下操作: @group.command() @click.option(???) def load(exclude = None): # ... 我希望用户能够像这样执行脚本: python script.py load --exclude one two three 或 在这种情况下,我希望exclude是 ['1'、'2'、'3']和['something']。 但是我希望--exclude

假设我们有以下函数,其中 具有一个可选参数
exclude
,应为 要成为字符串列表,请执行以下操作:

@group.command()
@click.option(???)
def load(exclude = None):
    # ...
我希望用户能够像这样执行脚本:

python script.py load --exclude one two three

在这种情况下,我希望
exclude
['1'、'2'、'3']
['something']
。 但是我希望
--exclude
中的值的数量是可变的,包括0。即,用户应该能够执行

python script.py load
在这种情况下,
exclude
应为
None
(或
[]
,无所谓)

如何使用“单击”来执行此操作

到目前为止,我唯一可行的选择是强制用户使用

python script.py load --exclude "one two three"

然后调用
exclude.split()

根据规定,文档必须具有
nargs
中规定的选项数量,因此
nargs=2
需要2个值

此外,不会否定多次传递选项的需要


您最可能的解决方案是传递一个字符串并拆分,尽管我没有使用“单击”太深,因此可能有人会有更好的解决方案。

单击似乎不支持您想要的方式:

根据规定,文档必须具有
nargs
中规定的选项数量,因此
nargs=2
需要2个值

此外,不会否定多次传递选项的需要

您最可能的解决方案是传递一个字符串并拆分,尽管我没有太深地使用Click,所以有人可能会有更好的解决方案

python script.py load --exclude "one two three"