如何在python argparse中使用lambda作为参数?

2024-04-26 06:45:28 发布

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

help_f= "The Syntax is  lambda x: f(x), where f(x) is the function in python lenguaje
parser.add_argument("-f",dest="f", type=function, help=help_f, required=True)
params = parser.parse_args()
method( params.f)

我有类似的东西,想法是-f参数是lambda。但当我从bash shell调用时,我不知道如何执行此操作,因为如果尝试:

^{pr2}$

我得到错误:“error: argument -f: invalid function value: 'x : x-4'

有什么帮助吗?在


Tags: thelambdainaddparserishelpfunction
1条回答
网友
1楼 · 发布于 2024-04-26 06:45:28

要访问导入的函数/模块,需要将globals传递给eval。例如:

>>> from math import exp  # anything in global scope will be accessible
>>> lambda_t = 'lambda x: exp(x)'

>>> l = eval(lambda_t, globals())
>>> l(2)
7.38905609893065

要使其作为参数工作,您需要接受一个字符串并在之后处理它,或者将lambda的创建包装在另一个函数中。您可以将其作为type参数传递以处理转换。在

^{pr2}$

从命令行运行:

python test.py -f 'lambda x: exp(x)'
7.38905609893

相关问题 更多 >