首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python单击模块创建CLI

Python单击模块创建CLI
EN

Stack Overflow用户
提问于 2016-04-29 09:38:09
回答 1查看 1.6K关注 0票数 0

我正在使用python单击模块来创建一个CLI。事实上,我希望有带有参数的类别命令,例如:

代码语言:javascript
复制
myawesomecli env info
myawesomecli env clean
myawesomecli env ...

myawesomecli database create-table <name>
myawesomecli database insert <entry>
myawesomecli database ...

到目前为止,我能想到的是:

代码语言:javascript
复制
import click
@click.group()
@click.version_option(version='0.1 ')
def cli():
    pass

@cli.command()
@click.argument('option')
def env(option):
    if option == 'info':
        click.echo("run env info command")
    elif option == 'clean':
        click.echo("run env clean command")     
    ...

@cli.command()
@click.argument('option')
def database(option):
    if option == 'create-table':
        click.echo("run database create-table command")
    elif option == 'clean':
        click.echo("run database clean command")        
    ...

是否有一种方法可以为每个子命令设置一个函数,而不是使用if- there?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-12 23:37:58

代码语言:javascript
复制
import click
@click.group()
@click.version_option(version='0.1 ')
def cli():
    pass

@cli.group()
@click.argument('option')
def env(option):
   """ Define the environment of the product """
   pass

@env.command()
def info():
    click.echo("run env info command")

@env.command():
def group():
    click.echo("run env group command")
...

我也在努力理解一些事情,但这是一个我希望能有所帮助的想法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36934840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档