<p>只需<code>import</code>变量或设置工厂函数即可将其输出。例如,如果您有一个目录结构</p>
<pre><code>project/
__init__.py
app.py
config.py
</code></pre>
<p><code>app.py</code>可能需要从<code>config.py</code>导入<code>mainList</code>。嗯,在<code>app.py</code>只是</p>
<pre><code>from config import mainList
</code></pre>
<p>瞧。您现在可以在<code>app.py</code>中访问它。您还可以导入整个文件并访问单个变量或函数,如下所示:</p>
<pre><code>import config
mainList = config.mainList
</code></pre>
<p>如果它在一个小区里,比如</p>
<pre><code>project/
__init__.py
app.py
otherstuff/
__init__.py
config.py
</code></pre>
<p>你可以的</p>
<pre><code>from otherstuff.config import mainList
</code></pre>
<p>但是您必须在子目录中有一个<code>__init__.py</code>才能这样做(即使<code>__init__.py</code>是完全空的)。你知道吗</p>
<p><strong>更新</p>
<p>嗯,我想你要做的是把<code>mainList</code>保存在它自己的文件中,然后用<code>search(list)</code>函数把它“存储”在那里。然后<code>file1</code>和<code>file2</code>相互引用(这样做时,称为循环导入,很少是您想要的)。你知道吗</p>
<p>问题是,用这样的目录结构来实现你想要的</p>
<pre><code>app/
mainFile.py
file1.py
file2.py
</code></pre>
<p>在<code>mainFile.py</code>中需要做的就是</p>
<pre><code># mainFile.py
import file1
</code></pre>
<p>在<code>file1.py</code></p>
<pre><code># file1.py
import file2
# Maybe assign some variables for easier access
mainList = file2.mainList
search = file2.search
# And your code
class Library:
pass
</code></pre>
<p><code>file2.py</code><strong>不应</strong>依赖于<code>file1.py</code>或导入流中更高级别的任何其他文件中的任何信息,而应将其设置为获取任何列表并在其中搜索,而不仅仅是<code>file1.py</code>中的一个。<a href="http://effbot.org/zone/import-confusion.htm" rel="nofollow">When you import a second file that in turn imports the first file, it can cause you a lot of headaches in Python</a>(“循环导入”,正如我前面提到的;关于它们的信息可以在文章的底部找到)。如果<code>file2.py</code>中的内容确实或必须依赖于<code>file1.py</code>,那么实际上应该将其内容移到<code>file1.py</code>。你知道吗</p>
<p>现在您已经可以访问<code>mainFile.py</code>中的所有数据和结构,您可以按照自己的意愿对它们进行操作。当解释器以<code>'__main__'</code>的形式运行<code>mainFile.py</code>时,它只关心<code>mainFile.py</code>中的内容。既然导入了<code>file1.py</code>和<code>file2.py</code>,它们就在那里,可以在表达式中使用。需要搜索列表吗?创建一个<code>Library()</code>的实例,然后通过它<code>search()</code>,可能是这样(<code>mainFile.py</code>):</p>
<pre><code># mainFile.py
import file1
library = file1.Library()
search = file1.search # Remember we imported search() from file2.py into file1.py
# Write your logic here
</code></pre>
<p>同样,当解释器运行时,只有你在<code>mainFile.py</code>中拥有的东西才重要,你在那里拥有你所需要的一切,所以你很好。<code>search()</code>和其他特定于模块的变量、函数、方法或属性<strong>不能像您在原始问题中编写它们的方式那样相互依赖;如果它们真的开始变得非常混乱。你知道吗</p>