擅长:python、mysql、java
<p>首先,我建议再考虑一下这个问题;在大多数情况下,全局状态不是你需要的</p>
<p>在高层,您需要一个<a href="https://en.wikipedia.org/wiki/Singleton_pattern" rel="nofollow noreferrer">singleton</a></p>
<p>一方面,您可以在<a href="https://docs.python.org/3/reference/datamodel.html#object.__new__" rel="nofollow noreferrer">^{<cd1>}</a>方法中手工实现,但我不建议这样做。Python导入系统机器被大量缓存。也就是说,每个模块一次只存在一个实例(以及其中的所有类)。所以,如果您觉得确实需要这样的功能,可以将您的状态放在模块范围内,比如</p>
<pre><code>_path = '../folder'
class Cache:
def do_some(self, arg):
return arg * _path
</code></pre>
<p>每个应用程序只需调用一次“cache\u module.\u path='../other'</p>
<p>另一种肮脏的方法是把这个路径放在类中,比如class属性</p>
<pre><code>class Cache:
path = '../folder'
@classmethod
def do_some(cls, arg):
return arg * cls.path
</code></pre>
<p>每个应用程序一次,你用<code>Cache.path = '../other'</code>设置缓存。缓存类和缓存模块在每个python解释器的所有代码库中都是相同的</p>