为什么是这样?
>>> eval(str(17*3))
51
>>> t=17;t*3
51
>>> eval(str(t=17;t*3))
File "<stdin>", line 1
eval(str(t=17;t*3))
^
SyntaxError: invalid syntax
>>>
有没有办法发送 eval() 变量?
>>> z=input("ins: ");cxc=compile(z,'<string>','exec');y=eval(cxc);print(y)
ins: t=17;t+3
None
>>>
我应该更准确,我认为一旦我得到了一个好的答案,它就会是普遍的。但是,这是我尝试@cnicutar 建议的实际用例。
>>> z=input("ins: ");y=eval(z);print(y)
ins: 't*13+q', {'q':4,'t':2}
('t*13+q', {'q': 4, 't': 2})
>>>
尝试 @LtWorf 和 @Ghopper21 的实现。