为对象实例提供全局访问点
想象一下,有一个系统(用Python写的),里面的不同部分总是和一个特定的对象实例进行互动。那怎样才能让大家都能方便地访问这个实例呢?
目前我想到的办法是把这个(单例)实例放在 __init__.py
文件里,然后根据需要导入这个模块:
# __init__.py
class Thing(object, Singleton):
pass
TheThing = Thing()
__all__ = ['TheThing']
有没有更好的方法来让大家都能方便地访问 TheThing
呢?
谢谢,
J.
1 个回答
7
在Python中不要使用单例模式
。Python的模块本身就很好地实现了单例的功能(它们只会初始化一次,并且在任何地方都可以使用),如果需要的话,你可以在模块里放一个全局变量。
这里有个解释:有没有简单优雅的方法来定义单例模式?