python单击使用独立的\u mod

2024-09-29 01:37:54 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题是关于PythonClick库的。在

我想点击收集我的命令行参数。收集时,我希望重用这些值。我不想要任何疯狂的回调链接,只要使用返回值。默认情况下,单击disables使用返回值并调用sys.exit()。在

我想知道如何正确地调用standalone_modehttp://click.pocoo.org/5/exceptions/#what-if-i-don-t-want-that),以防我想使用decorator样式。以上链接的文档仅显示使用click(手动)创建命令时的用法。 有可能吗?下面是一个最小的例子。它演示了click如何在从gatherarguments返回后直接调用sys.exit()

import click

@click.command()
@click.option('--name', help='Enter Name')
@click.pass_context
def gatherarguments(ctx, name):
    return ctx

def usectx(ctx):
    print("Name is %s" % ctx.params.name)

if __name__ == '__main__':
    ctx = gatherarguments()
    print(ctx) # is never called
    usectx(ctx) # is never called 

$ python test.py --name Your_Name

我希望它是无状态的,也就是说,没有任何click.group功能——我只想要结果,而不需要退出应用程序。在


Tags: nameifis链接defsysexitclick
1条回答
网友
1楼 · 发布于 2024-09-29 01:37:54

只需发送独立模式作为关键字参数对我有效:

from __future__ import print_function
import click

@click.command()
@click.option(' name', help='Enter Name')
@click.pass_context
def gatherarguments(ctx, name):
    return ctx

def usectx(ctx):
    print("Name is %s" % ctx.params['name'])

if __name__ == '__main__':
    ctx = gatherarguments(standalone_mode=False)
    print(ctx)
    usectx(ctx)

输出:

^{pr2}$

相关问题 更多 >