为对象实例提供全局访问点

3 投票
1 回答
7885 浏览
提问于 2025-04-16 01:58

想象一下,有一个系统(用Python写的),里面的不同部分总是和一个特定的对象实例进行互动。那怎样才能让大家都能方便地访问这个实例呢?

目前我想到的办法是把这个(单例)实例放在 __init__.py 文件里,然后根据需要导入这个模块:

# __init__.py
class Thing(object, Singleton):
 pass

TheThing = Thing()

__all__ = ['TheThing']  

有没有更好的方法来让大家都能方便地访问 TheThing 呢?

谢谢,

J.

1 个回答

7

在Python中不要使用单例模式。Python的模块本身就很好地实现了单例的功能(它们只会初始化一次,并且在任何地方都可以使用),如果需要的话,你可以在模块里放一个全局变量。

这里有个解释:有没有简单优雅的方法来定义单例模式?

撰写回答