You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Click API中接收数量未知的多值选项?

使用Click API接收数量未知的多值选项

要实现接收数量不确定的多值选项,直接用Click的nargs=-1参数就能解决——它允许选项接收任意数量的参数,直到遇到下一个--开头的选项为止,完美匹配你的场景。

完整代码示例

import click

@click.group()
def cli():
    pass

@cli.command()
@click.option('--fruits', nargs=-1, help='可传入任意数量的水果名称')
@click.option('--vegetable', help='传入单个蔬菜名称')
def shop(fruits, vegetable):
    # 把收集到的水果元组转成空格分隔的字符串,按需调整输出格式
    fruits_str = ' '.join(fruits) if fruits else ''
    print(f"fruits: '{fruits_str}', vegetable: '{vegetable}'")

if __name__ == '__main__':
    cli()

测试调用与结果

第一种调用:

python demo.py shop --fruits apple --vegetable potato

输出:

fruits: 'apple', vegetable: 'potato'

第二种调用:

python demo.py shop --fruits apple banana --vegetable potato

输出:

fruits: 'apple banana', vegetable: 'potato'

补充说明

  • nargs=-1会把所有后续的非选项参数收集成一个元组赋值给fruits,如果需要直接用数组形式,直接输出fruits即可,比如修改print语句为:
    print(f"fruits: {fruits}, vegetable: '{vegetable}'")
    
    此时第二种调用会输出:fruits: ('apple', 'banana'), vegetable: 'potato'
  • 这个参数会自动识别下一个--开头的选项作为终止符,不用担心参数混叠的问题。

内容的提问来源于stack exchange,提问作者Priyansh Maheshwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:48:19