擅长:python、mysql、java
<p>正如我在一篇评论中所说,<code>eval</code>或{<cd2>}是邪恶的,一个更好的选择是使用<a href="https://docs.python.org/3.4/library/code.html" rel="nofollow">code</a>模块,如下例所示。另外,您可能更喜欢编译regex,以便只在每次迭代时对输入执行匹配,而不是在每次迭代时构建自动机。在</p>
<pre><code>import fileinput
import code
console = code.InteractiveConsole(locals())
import re
r = re.compile(r'([ ]{4}|\t)(.*)')
code = ''
for line in fileinput.input():
match = r.match(line)
if match:
console.push(match.group(2))
</code></pre>
<p>虽然该示例将输出<code>sys.stdout</code>上的结果,但您可能需要使用重载类,例如<a href="http://code.activestate.com/recipes/355319-using-codeinteractiveconsole-to-embed-a-python-she/" rel="nofollow">this example</a>中的类。在</p>