Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何执行click.Command(epsilon=callback())?_Python - Fatal编程技术网

Python 如何执行click.Command(epsilon=callback())?

Python 如何执行click.Command(epsilon=callback())?,python,Python,我有一个全局函数,用于生成顶级帮助说明的附录。 如何将此文本附加到顶级单击命令帮助文本? 追加函数将当前的click.Context作为参数,以便能够迭代可用的命令 最小(非)工作示例: def helpAppendix(cfx: click.Context) return "hello world, {}".format(cfx.invoked_subcommand) @click.group(epsilon=helpAppendix()) def mycommand(cfx: cli

我有一个全局函数,用于生成顶级帮助说明的附录。 如何将此文本附加到顶级单击命令帮助文本? 追加函数将当前的click.Context作为参数,以便能够迭代可用的命令

最小(非)工作示例:

def helpAppendix(cfx: click.Context)
    return "hello world, {}".format(cfx.invoked_subcommand)
@click.group(epsilon=helpAppendix())
def mycommand(cfx: click.Context):
    """
    This is my command.
    """
    return "Here I am"
运行此功能时,我希望:

$ mycommand --help
This is my command.
hello world, mycommand

这是什么框架?您可能需要
@click.group(epsilon=helpAppendix)
,而不需要
()
@tobias_k。我称之为库,而不是框架。通常,当传递“操作”来处理事件时,操作必须是
call
-able。在您的例子中,您希望按照tobias_k所说的操作,删除
()
,以便传递实际的函数对象。您可以通过使用
lambda
来实现这一点,该函数返回一个可调用的句柄<代码>lambda在需要将参数传递给操作函数时很好地使用
@click.group(epsilon=lambda:helpAppendix())
允许您使用
()
,这意味着您可以在需要时传递参数。我尝试过,但没有成功:
TypeError:\uu init\uuuuu()得到一个意外的关键字参数“epsilon”
。我还尝试了
类帮助:def\uu str\uuu():返回“帮助附录”