擅长:python、mysql、java
<p>问题是您从<code>main.py</code>定义了<code>myList</code>,但是<code>subfile.py</code>需要使用它。这里有一个解决这个问题的干净方法:将所有全局变量移到一个文件中,我称这个文件为<code>settings.py</code>。此文件负责定义全局参数并初始化它们:</p>
<pre><code># settings.py
def init():
global myList
myList = []
</code></pre>
<p>接下来,您的<code>subfile</code>可以导入全局变量:</p>
<pre><code># subfile.py
import settings
def stuff():
settings.myList.append('hey')
</code></pre>
<p>注意<code>subfile</code>不调用<code>init()</code>-该任务属于<code>main.py</code>:</p>
<pre><code># main.py
import settings
import subfile
settings.init() # Call only once
subfile.stuff() # Do stuff with global var
print settings.myList[0] # Check the result
</code></pre>
<p>这样,可以在避免多次初始化全局变量的同时实现目标。</p>