如何在Python click-shell中为命令传递位置参数?
如何在click-shell中为命令传递位置参数?
click-shell 是基于 Click 框架封装的,所以直接复用 Click 的参数定义方式就能实现你的需求,无需额外复杂操作:
修改后的可运行代码
import os import click from click_shell import shell @shell(prompt='myapp> ', intro='Command me!') def myapp(): os.system("cls") @myapp.command() @click.argument('a', type=float) @click.argument('b', type=float) def sum(a, b): print(f"{a} + {b} = {a + b}")
关键说明
- 导入
click模块,用@click.argument()装饰器为sum命令定义两个位置参数a和b,指定type=float让框架自动完成类型转换,省去手动转格式的步骤。 - 现在你在交互式shell里输入
myapp> sum 2 3,就能直接输出2.0 + 3.0 = 5.0;如果想保留整数显示,可以把type设为int,或者在输出时自行处理格式。
工具包建议
- 如果只是需要基础的交互式CLI,click-shell + Click的组合完全够用,它继承了Click所有强大的参数处理能力(可选参数、标志位、子命令嵌套等)。
- 要是需要更丰富的交互式功能(比如命令自动补全、历史记录搜索、脚本执行),可以考虑
cmd2,它专门针对交互式shell做了大量增强,上手成本也不高。
内容的提问来源于stack exchange,提问作者Michael Archman
相关产品推荐
相关产品推荐

