我需要用动态表达式来计算多个向量,n个向量之间的计算关系不确定,用表达式代替,可以下面这样吗?
def calculateExpress( formula, dataVector)
{
f=dataVector
result=parseExpr(formula).eval()
return result
}
dataVector=
[
[1,2],
[2,3],
[4,5],
[6,7]
]
formula="f[0]+f[1]+f[2]+f[3]"
calculateExpress(formula,dataVector)
但运行时报错:
Function definition [f] is not copyable and can't serve as an operand in numeric calculation.
请问有什么办法吗?
parseExpr之后的表达式,一般都使用在sql语句中,变量就是表。这个问题可以参考元编程教程第2.4节例子,1个向量对应表的1个列,传入一个表和一个表达式,动态生成一个sql语句执行,代码如下: