return 使用 is_eager 选项的退出代码 python 点击
return exit code with is_eager option in python click
我正在使用单击 framework.I 想要 return 版本并在我 运行 python hello.py -- 版本时退出代码。目前我的代码是这样的。
import click
def print_version(ctx, param, value):
if not value or ctx.resilient_parsing:
return
click.echo('Version 1.0')
return 1
ctx.exit()
@click.command()
@click.option('--version', is_flag=True, callback=print_version,
expose_value=False, is_eager=True)
def hello():
click.echo('Hello World!')
hello()
$ python hello.py --version
Version 1.0
Hello World!
我期待这样的输出:
$ python hello.py --version
Version 1.0
1
错误是您在调用 exit 语句之前 return 从您的函数中退出。所以它永远不会得到 运行。此处不需要 return 语句。此代码应该有效:
import click
def print_version(ctx, param, value):
if not value or ctx.resilient_parsing:
return
click.echo('Version 1.0')
ctx.exit(0)
@click.command()
@click.option('--version', is_flag=True, callback=print_version,
expose_value=False, is_eager=True)
def hello():
click.echo('Hello World!')
hello()
这只会输出 Version 1.0
并且会以退出代码 0
退出。您可以在 cox.exit(YOUR_EXIT_CODE)
中更改您想要的任何退出代码,尽管您可能希望为此使用 0 作为退出代码。
如果你想检查退出代码,你可以执行你的程序,而不是 运行 在你的 unix-based shell 中添加一个额外的命令来获取最后执行的命令的退出代码:
python3 FILE_NAME.py --version
echo $?
我正在使用单击 framework.I 想要 return 版本并在我 运行 python hello.py -- 版本时退出代码。目前我的代码是这样的。
import click
def print_version(ctx, param, value):
if not value or ctx.resilient_parsing:
return
click.echo('Version 1.0')
return 1
ctx.exit()
@click.command()
@click.option('--version', is_flag=True, callback=print_version,
expose_value=False, is_eager=True)
def hello():
click.echo('Hello World!')
hello()
$ python hello.py --version
Version 1.0
Hello World!
我期待这样的输出:
$ python hello.py --version
Version 1.0
1
错误是您在调用 exit 语句之前 return 从您的函数中退出。所以它永远不会得到 运行。此处不需要 return 语句。此代码应该有效:
import click
def print_version(ctx, param, value):
if not value or ctx.resilient_parsing:
return
click.echo('Version 1.0')
ctx.exit(0)
@click.command()
@click.option('--version', is_flag=True, callback=print_version,
expose_value=False, is_eager=True)
def hello():
click.echo('Hello World!')
hello()
这只会输出 Version 1.0
并且会以退出代码 0
退出。您可以在 cox.exit(YOUR_EXIT_CODE)
中更改您想要的任何退出代码,尽管您可能希望为此使用 0 作为退出代码。
如果你想检查退出代码,你可以执行你的程序,而不是 运行 在你的 unix-based shell 中添加一个额外的命令来获取最后执行的命令的退出代码:
python3 FILE_NAME.py --version
echo $?