擅长:python、mysql、java
<p>有<code>exec</code>:</p>
<pre><code>def foo():
print bar
exec foo.func_code in {"bar": "baz"}
</code></pre>
<p>这不是特别好的风格(我甚至可以说它特别糟糕)。这使得<code>foo</code>的实现很难理解,因为它依赖于知道调用它的特殊方式。相反,将参数传递给函数。在</p>
<p>这并不能提供任何安全措施。首先,Python不包含任何受限的执行功能。没有什么可以阻止用户提供foo的定义:</p>
^{pr2}$
<p>仅仅因为您没有在映射中提供<code>os</code>,并不意味着他们不能自己去获得它。如果您真的需要限制执行,那么您可能希望继续使用Lua,或者至少调查一下<a href="http://codespeak.net/pypy/dist/pypy/doc/sandbox.html" rel="nofollow">PyPy sandboxed mode</a>。在</p>