单例模式,在进程地址空间中,一个类只有一个实例。
对于python而言,单例的实现更多依赖语言特性,比如內建new函数。
下面使用new函数实现单例,使用id查看内存地址进行测试。
#! /usr/bin/python
class Singleton(object):
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls._instance
if __name__ == '__main__':
s1 = Singleton()
s2 = Singleton()
print id(s1)
print id(s2)
if id(s1) == id(s2):
print "====equal======"
关于单例模式,更多信息请参考:
http://blog.csdn.net/lanyang123456/article/details/70187858