我需要能够采用使用 OpenDocument 公式语法的公式,将其解析为 Python 可以理解的语法,但无需评估变量,然后能够通过改变变量的值来多次评估公式。公式可以是用户输入,因此 pyparsing 让我既可以有效地处理公式语法,又可以清理用户输入。有许多很好的 pyparsing 示例可用,但所有数学示例似乎都假设一个人立即评估当前范围内的所有内容。
就上下文而言,我正在使用工业经济模型(生命周期评估,或 LCA),其中这些公式表示过程之间的材料或能量交换量。可变数量可以是几个参数的函数,例如地理位置。公式链和变量引用存储在有向无环图中,因此始终可以简单地评估公式。公式作为字符串存储在数据库中。我的问题是:
- 是否可以解析一个公式,以便解析后的评估也可以存储在数据库中(作为要评估的字符串或其他东西)?
- 这种方法有替代方案吗?请记住,理想的解决方案是解析/写入一次,然后读取多次。例如,部分解析公式,然后使用 ast 模块,虽然我不知道这如何与数据库存储一起使用。
- 我可以查看与此类似的项目或库的任何示例吗?我不是程序员,只是一个在业余时间制作开源 LCA 软件模型的学生试图完成他的论文。
- 这种方法是不是太慢了?我希望能够进行大量的蒙特卡洛运行,每次运行可能涉及数以万计的公式评估(这是一个大数据库)。