擅长:python、mysql、java
<p>你可能想试试这样的方法:</p>
<pre><code>_globals = {}
code = """import math;"""
code += """import numpy;"""
code = compile(code, '<string>', 'exec')
exec code in _globals
</code></pre>
<p>它比仅仅执行<code>exec</code>更安全,而且应该在函数的局部作用域内正确导入。在</p>
<p>然后,可以使用导入的任何模块(或函数)更新<code>globals()</code>。在</p>
<p>当对函数使用<code>exec</code>时,可以使用<code>g = globals()</code>获得{<cd4>}的句柄,然后对<code>g</code>进行更新。对于模块,您应该执行另一个步骤。。。您还需要更新<code>sys.modules</code>中的模块。在</p>
<p>更新:明确:</p>
^{pr2}$