我想要构建一个能够在运行时采用几个用户定义表达式的类,并根据它们和该类拥有的一些预定义变量(例如,用户将知道变量a,b,C & d存在:在运行时执行用户定义表达式的python类
伪代码:
>>> foo = myclass()
>>> foo.a = 2
>>> foo.b = 3
>>> foo.expression = 'a + b'
>>> foo.run_expression()
5
>>> foo.expression = 'a * b'
>>> foo.run_expression()
10
我已经探索波长的职能,但他们似乎需要我明确定义什么输入用于每当我创建一个新的lambda函数,这意味着很多来自用户的锅炉板输入,他们希望更新lambda,因为我知道输入总是一组预定义的变量。
有没有人有类似的经验,或者对如何构建这样的程序有任何想法?
好老邪的eval()?但真正的重点是......你为什么需要这样的东西? –
但我会甚至能够''eval()'访问类的内部变量,而不做大量的字符串操作? –
是的。这就是为什么它被称为* evil * eval:D –