擅长:python、mysql、java
<p>只需在模块中重新分配变量:</p>
<pre><code>import myfunc
from myfunc import print_a
a = 10
print a
myfunc.a = a
print_a()
</code></pre>
<p>否则是不可能的。</p>
<p>请记住,python对待模块的方式与C完全不同。
python中的<code>import</code>不会在该位置复制文件的“内容”,
但是它执行给定文件中的代码并创建一个<code>module</code>对象。</p>
<p>模块的全局变量是<code>module</code>对象属性,可以修改,如我所示。除了内置变量,没有“全局变量”这样的概念。</p>
<hr/>
<p>我建议您重构代码,这样您就不必修改这个全局变量,将使用<code>myfunc.a</code>的代码从<code>main1</code>移动到<code>myfunc</code>。
事实上,您需要这样的全局变量已经是一种代码味道,您的代码有问题,您应该尝试修复它。</p>
<hr/>
<p>实际上,有一种方法可以影响“全球范围”,但它太老套了,我甚至不想提它。相信我:你不想用它。如果人们看到你的代码使用这样的黑客,你可能在身体上有危险。</p>