<p>在Lua中,有一个名为<code>setfenv()</code>的内置函数,它允许您提供一个变量表作为函数的环境。下面是一个使用它的示例:</p>
<pre class="lang-lua prettyprint-override"><code>foo = 1
function f()
print(blech) --Note that no variable named blech has been defined.
end
variableTable = {blech = foo}
setfenv(f, variableTable)
f() -- This will work and print 1, because blech has been defined as foo's value in the variableTable
</code></pre>
<p>我这样做的动机是,它允许我建立一个平台,这样用户就可以在Lua中编写易于理解的脚本(他们可以编写空函数,并且可以简单地相信变量会为他们而存在)。它还提供了一种优雅的方法来排除出于安全原因我不希望它们使用的模块和函数(例如,如果您定义了一个没有定义os模块的变量表,那么知识更丰富的用户就不可能恶意地使用它)。在</p>
<p>我希望能够在Python中实现同样的功能。在Python中有类似的方法吗?在</p>