我必须计算(数百万)Python表达式,例如(int(a) >> 8 == 4) and b
在我的OCaml程序中。有pycaml
,但我没能让它工作。在
所以我转向另一个想法:直接控制Python解释器的输入/输出。在
理想情况下,我希望拦截解释器本身的输入/输出。
通过发送a = 3
b = 5
a > b
给解释器,我就可以得到结果False
,就像我是通过键盘完成的一样。。在
>>> a = 3
>>> b = 5
>>> a > b
False
>>>
但是,我的代码没有按预期工作(而相同的代码适用于一些交互式程序)
^{pr2}$我尝试将3 + 5\n
改为print 3\n
,但它仍然挂在input_line
。
有更好的办法吗?我需要评估很多
表达式,所以我不想通过临时文件来实现。感谢任何帮助,
谢谢。在
我不打算评论整个概念的怪异之处(驱动python计算o'caml中的表达式),但似乎您可能希望编写一个python程序,它是一个从管道读取/写入字符串的eval循环。查看eval命令。在
您可以通过命令行向解释器提供命令:
你的需要够了吗?在
如果您担心反复打开解释器,您可以同时生成和计算多个表达式。我不确定上限是多少,但我能够评估并打印200个
a = 3; b = 5; print a > b;
的串联副本,没有任何问题。在相关问题 更多 >
编程相关推荐