擅长:python、mysql、java
<p>您的<code>main</code>将仅作为独立脚本调用,而不是从其他模块导入时调用。</p>
<pre><code>if __name__ == '__main__':
main()
</code></pre>
<p>是使模块可以从命令行运行的技巧。</p>
<p>为了证明这一点</p>
<pre><code>import app
app.main()
</code></pre>
<p>然后运行你的代码。</p>
<p>一旦初始化了它<code>app</code>就会变成一个单例,任何其他导入它的模块都会得到该初始化版本。</p>
<p>我有一个类似的问题,我不想访问<code>app</code>,但希望模块能够说<code>app = MyApp()</code>,并且仍然共享相同的数据(我忘记了为什么我想要它,但这可能与希望它在首次使用时初始化有关)</p>
<p>我最终使用了<a href="https://stackoverflow.com/questions/1318406/why-is-the-borg-pattern-better-than-the-singleton-pattern-in-python">Borg</a>而不是单例。</p>