擅长:python、mysql、java
<p>先做几件事。你为什么要创建一个函数来创建其他函数?你想干什么?也许还有更好的办法。这里还有另一种方法叫做create function,它不需要和exec一起玩。在</p>
<pre><code>>>> def create_functions():
... global glob1
... def glob1():
... return "G1"
...
>>> glob1()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'glob1' is not defined
>>> create_functions()
>>> glob1()
'G1'
>>>
</code></pre>
<p><strong>编辑</strong></p>
<hr/>
<p>不使用exec注入源代码(<strong>这根本不是一个好主意</strong>)</p>
<p>你的客户提交他们的代码,然后只做一个自定义导入</p>
<ol>
<li>客户提交代码</li>
<li>把代码存起来自定义.py在</li>
<li><p>在您希望让客户注入的代码中执行以下操作</p>
<p>导入操作系统
如果os.path.exists("自定义.py"):
导入自定义
自定义.注入()</p></li>
</ol>
<p>这样他们就可以给你他们的代码你叫注入,他们可以改变事情。在</p>