是否可以在单击中为另一个参数定义选项的默认值?
我想要的是类似的东西:
@click.command()
@click.argument('project')
@click.option('--version', default=project)
def main(project, version):
...
如果选项--version
为空,它将自动获取project
的值。这样可能吗?
@click.command()
@click.argument('project')
@click.option('--version', default=None)
def main(project, version):
if version is None:
version = project
print("proj", project, "vers", version)
if __name__ == "__main__":
main()
示例用法:
$ python3 clicktest.py 1 proj 1 vers 1 $ python3 clicktest.py 1 --version 2 proj 1 vers 2
要在装饰器中执行此操作,可以利用callback
选项,该选项接受callback
:
(context, param, value)