【发布时间】:2019-01-28 11:26:36
【问题描述】:
我有一个字符串形式的函数列表:
["y + x + 3", "x**2 + y**2 - 17"] # 2 functions in list
我有一个Sympy Symbol 对象(基本上是变量)列表,其中.name 属性与函数字符串中的变量名称对应:
[Symbol(x), Symbol(y)]
# list element 0's .name attribute is "x"
我发现 Python 有一个名为 eval() 的简洁函数,它可以计算字符串,例如:
x = 1
eval("x + 3") # Result should be 4
基本上这就是我想要对函数字符串执行的操作。然而,由于这是一个动态实现,我没有在我的程序中eval() 上方的行上定义变量,而是在一个列表中。例如,在上面的例子中,x 被定义为 1,那么eval() 函数就可以使用它。
但是我的变量在一个列表中,没有定义为我的函数范围内的变量。 如何使用eval() 函数并利用我的变量列表?
【问题讨论】: