我正在尝试使用 Python3 创建一个电子表格应用程序,但很难将其设置为能够执行跨单元格功能,例如:
a0+2
其中 a0 是包含字符串的 tkinter 文本框。我已经制作了一个字典,将每个地址(a0、a1、a2 等)映射到单元格对象,但不确定是让程序解析字符串以查找地址字符串,还是有一些非常巧妙的eval()
技巧。我试过使用eval()
,但不断收到错误
TypeError: globals must be a real dict; try eval(expr, {}, mapping)
字典放在哪里,或者即使我尝试使用全局强制转换。任何帮助将不胜感激。
也许可以考虑使用类似 SymPy 而不是 eval()
的东西。它应该允许使用在单元格中进行计算,只要您可以链接符号(如此a0
此处所示)。
不要使用 eval 来计算公式。它使人们能够将几乎任何python代码放入电子表格中,这意味着您拥有的每个电子表格都能够对您的计算机系统造成无法估量的损害。这是一个非常非常糟糕的主意。
我不明白你尝试使用 eval 的目的是什么。简单的例子是,如果我们有三个单元格,例如:
a0=3; a1=2; a3=a0+a1
只需将 a0 和 a1 相加,我不介意没有 eval() 您将无法得到的地方