Python,使用单例模式还是全局变量
在Python中,使用单例模式比使用全局变量更好么?
class Singleton(type):
def __call__(self, *args, **kwargs):
if 'instance' not in self.__dict__:
self.instance = super(Singleton, self).__call__(*args, **kwargs)
return self.instance
或者直接创建一个全局变量:
SINGLETON_VARIABLE = None
def getSingleton():
if SINGLETON is None:
SINGLETON_VARIABLE = SOME_ININ_CLASS()
return SINGLETON_VARIABLE
为了实现单例模式,是否有必要让事情变得复杂呢?谢谢!
1 个回答
7
使用全局变量的方法有个问题,就是你总是可以访问这个变量并修改它的内容,这样就让它变得不那么安全,像是一个“弱版”的单例模式。而且,如果你有多个单例类的话,就得为每个类都定义一个函数和一个全局变量,这样一来,事情就会变得更加复杂和混乱。