gpt4 book ai didi

python - 如何在 Python Click 中将选项的默认值设置为另一个参数?

转载 作者:行者123 更新时间:2023-12-04 15:39:46 24 4
gpt4 key购买 nike

是否可以将选项的默认值定义为点击中的另一个参数?

我想要的是这样的:

@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选项,它接受 (context, param, value):

import click

@click.command()
@click.argument('project')
@click.option('--version', default=None,
callback=lambda c, p, v: v if v else c.params['project'])
def main(project, version):
print("proj", project, "vers", version)


if __name__ == "__main__":
main()

关于python - 如何在 Python Click 中将选项的默认值设置为另一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58201972/

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