gpt4 book ai didi

python - 如何使用 python-click 在同一组中对 cmd 使用相同的选项

转载 作者:太空狗 更新时间:2023-10-30 03:00:42 25 4
gpt4 key购买 nike

我有如下代码,foo 和 bar 都有一个 user 选项,我需要写:

@click.option('--user', default='*')

每个函数两次。

但是我其实有很多这样的cmd,所以是很多重复的代码。

@click.group(help="cmd group")
def main():
pass


@click.command(name='foo')
@click.option('--user', default='*')
def foo(user):
click.secho(user, fg='green')


@click.command(name='bar')
@click.option('--user', default='*')
def bar(user):
click.secho(user, fg='green')


main.add_command(foo)
main.add_command(bar)

我想要的是将相同的选项添加到cmd组中的一个地方。我怎样才能使用点击来做到这一点?

最佳答案

在上下文中传递它:

@click.group(help="cmd group")
@click.option('--user', default='*')
@click.pass_context
def main(ctx, user):
ctx.obj = {'user': user}


@click.command(name='foo')
@click.pass_context
def foo(ctx):
click.secho(ctx.obj['user'], fg='green')


@click.command(name='bar')
@click.pass_context
def bar(ctx):
click.secho(ctx.obj['user'], fg='green')


main.add_command(foo)
main.add_command(bar)

mycli --user cats bar 将从 bar 子命令回显 cat

关于python - 如何使用 python-click 在同一组中对 cmd 使用相同的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28449555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com