我有一个使用以前未知数量的参数初始化的类,我希望它使用 Python 的click包在 CLI 上完成。我的问题是我无法初始化它并运行click命令:
$ python mycode.py arg1 arg2 ... argN click_command
设置定义数量的参数,如nargs=5,解决了缺少命令的问题,但我有义务在我的命令之前输入 5 个参数。对于像nargs=-1, 之类的可变参数,click不能识别click_command为命令。
如何输入 n 个参数,然后使用click?
import click
class Foo(object):
def __init__(self, *args):
self.args = args
def log(self):
print('self.args:', self.args)
pass_foo = click.make_pass_decorator(Foo)
@click.group()
@click.argument('myargs', nargs=-1)
@click.pass_context
def main(ctx, myargs):
ctx.obj = Foo(myargs)
print("arguments: ", myargs)
@main.command()
@pass_foo
def log(foo):
foo.log()
main()
我希望能够click在将 n-many args 传递给我的Foo()类后运行命令,因此我可以初始化它并将其log()方法作为 CLI 命令运行,但输出是:
错误:缺少命令
一只萌萌小番薯
相关分类