我正在使用 python click 模块来创建一个 CLI。事实是我希望有带参数的类别命令,例如:
myawesomecli env info
myawesomecli env clean
myawesomecli env ...
myawesomecli database create-table <name>
myawesomecli database insert <entry>
myawesomecli database ...
到目前为止,我可以想出这个:
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-else?