擅长:python、mysql、java
<p>回答我自己的问题,灵感来自库巴图卡的建议。可以将模块变量指向全局命名空间。通过用<code>import</code>行替换<code>exec()</code>行并设置<code>globals()</code>名称空间行,这为我提供了所有的功能</p>
<p>函数文件hat.py:</p>
<pre class="lang-py prettyprint-override"><code>from sympy import Symbol
def set_global_namespacece(namespace):
global global_namespace
global_namespace = namespace
def hat(var):
nameh = str(var)+"h"
global_namespace[nameh] = Symbol(nameh)
return global_namespace[nameh]
</code></pre>
<p>项目文件x_eqns.py:</p>
<pre class="lang-py prettyprint-override"><code>from sympy import Symbol
from hat import *
set_global_namespacece(globals())
x = Symbol('x')
e1 = x + hat(x)
print(xh + e1)
</code></pre>