如何在运行时从python中的输入字符串定义函数?

如何在运行时从python中的输入字符串定义函数?,python,c++,function,parsing,runtime,Python,C++,Function,Parsing,Runtime,我想解决这个问题。它需要在运行时定义函数 例如:我必须将输入(2*x+7)%N作为字符串,并在运行时定义一个函数,如func=lambda x:(2*x+7)%N。请帮助我找出如何在运行时将字符串转换为函数。 它似乎是迷惑谜语,所以如果你想用C++解决它有两种方法。困难的方法是使用一些算法实现一个小型的数学解析器,如。或者,如果您熟悉C++中的库链接,最好使用数学表达式解析器库。因特网上有许多图书馆。在这里,我建议如下其中之一 我已经测试过了,显然速度很快。你可以在GitHub中克隆 无论如何,

我想解决这个问题。它需要在运行时定义函数


例如:我必须将输入
(2*x+7)%N
作为字符串,并在运行时定义一个函数,如
func=lambda x:(2*x+7)%N
。请帮助我找出如何在运行时将字符串转换为函数。

它似乎是迷惑谜语,所以如果你想用C++解决它有两种方法。困难的方法是使用一些算法实现一个小型的数学解析器,如。或者,如果您熟悉C++中的库链接,最好使用数学表达式解析器库。因特网上有许多图书馆。在这里,我建议如下其中之一

我已经测试过了,显然速度很快。你可以在GitHub中克隆

无论如何,您不能使用lambda函数解决这种情况,因为输入是一个数学表达式,您应该在运行时解析并计算它


如果使用Python,参见.P/>

它似乎是迷惑的谜语,所以如果你想用C++解决它,有两种方法。困难的方法是使用一些算法实现一个小型的数学解析器,如。或者,如果您熟悉C++中的库链接,最好使用数学表达式解析器库。因特网上有许多图书馆。在这里,我建议如下其中之一

我已经测试过了,显然速度很快。你可以在GitHub中克隆

无论如何,您不能使用lambda函数解决这种情况,因为输入是一个数学表达式,您应该在运行时解析并计算它


如果您使用python,请参见。

您可以使用exec从字符串定义函数。但是,这允许将任何代码注入到程序中。但因为这只是为了解决这个挑战,所以可能没问题

exec'func=lambda x:'+输入

您可以使用exec从字符串定义函数。但是,这允许将任何代码注入到程序中。但因为这只是为了解决这个挑战,所以可能没问题

exec'func=lambda x:'+输入

请解释这与C++有关。使用<代码> Excor()/代码>在字符串中执行语句。该问题不需要从字符串中定义函数。您应该解析函数的RPN并使用函数合成动态生成一个函数。请解释这与C++相关。使用<代码> Excor()(代码)>在字符串中执行语句。这个问题不需要从字符串中定义函数。您应该解析RPN并使用函数组合动态生成函数。您的意思是@rioV8是的,就是那个。您的意思是@rioV8是的,就是那个。