我有以下内容:
@click.option("--option1")
@click.option("--option2")
@click.option("--option3")
@click.group()
def group(option1, option2, option3):
pass
@click.option("--option1")
@click.option("--option2")
@click.option("--option3")
@group.command()
def cli(option1, option2, option3):
# do something with args
...
有没有办法在组和命令之间重用选项?
我想出了以下在其他地方从未见过的方法:
@click.option("--option1", default=1)
@click.option("--option2", default=2)
@click.option("--option3", default=3)
@click.group()
def group(**_):
pass
@click.pass_context
@group.command()
def cli(ctx):
params = ctx.parent.params
print(params) # {"option1": 1, "option2": 2, "option3": 3}
如上所示,我从父上下文中获得params
,其中包含具有选项名称及其值的键值对。