我如何知道标志是由用户传递的还是有默认值?

问题描述 投票:0回答:1

示例代码:

import click

@click.command
@click.option('-f/-F', 'var', default=True)
def main(var):
    click.echo(var)

main()

main()
函数中,如何检查
var
参数是否默认获得
True
值,还是由用户传递的?

我想要实现的目标:我将拥有很少的旗帜。当用户没有传递任何标志时,我希望它们全部为

True
。当用户传递至少一个标志时,只有传递的标志应该是
True
,其他标志应该是
False

python click
1个回答
0
投票

由于我没有真正使用过单击 - 也许有一些功能可以处理此问题,但作为解决方法,我将默认值设置为“无”,并在调用命令时检查该值是否为“无”。像这样的东西;

import click

@click.command
@click.option('-f/-F', 'var', default=None)
def main(var):
    if var == None:
       var = True
       print("No Value Provided - default to True")
    click.echo(var)

main()
© www.soinside.com 2019 - 2024. All rights reserved.