Pur*_*ite 5 python command-line-interface python-2.7 python-click
我正在使用 click 在 Python 中编写一个 cli 程序,我需要编写如下内容:
import click
@click.group()
def root():
"""root"""
pass
@root.group()
def cli():
"""test"""
pass
@root.group()
def cli2():
"""test"""
pass
@cli.command('test1')
@cli2.command('test1')
def test1():
"""test2"""
print 1234
return
root()
Run Code Online (Sandbox Code Playgroud)
但这将失败:
类型错误:尝试将回调转换为命令两次。
如何在多个组之间共享命令?
装饰group.command()器是执行两个功能的捷径。一种是创建命令,另一种是将命令附加到组。
因此,要与多个组共享命令,您可以为一个组装饰命令,如下所示:
@cli.command('test1')
Run Code Online (Sandbox Code Playgroud)
然后,由于命令已经创建,您可以简单地将单击命令对象添加到其他组,例如:
cli2.add_command(test1)
Run Code Online (Sandbox Code Playgroud)
import click
@click.group()
def root():
"""root"""
pass
@root.group()
def cli1():
click.echo('cli1')
@root.group()
def cli2():
click.echo('cli2')
@cli1.command('test1')
@click.argument('arg1')
def test1(arg1):
click.echo('test1: %s' % arg1)
cli2.add_command(test1)
root('cli2 test1 an_arg'.split())
Run Code Online (Sandbox Code Playgroud)
cli2
test1: an_arg
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1776 次 |
| 最近记录: |