python单例模式

2017-04-21  本文已影响0人  smile念殇

Python单例模式

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

python new()在init()之前被调用,用于生成实例对象。利用这个方法和类的属性的特点可以实现设计模式的单例模式。单例模式是指创建唯一对象,单例模式设计的类只能实例化1个对象。

class Singleton(object):
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, '_instance'):
            cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
        return cls._instance            

# 测试
if __name__ == '__main__':
    instance = Singleton()
    instance2 = Singleton()

    print(id(instance))
    print(id(instance2)) 

输出的结果

两个实例的id 是相同的

3070140940
3070140940
上一篇 下一篇

猜你喜欢

热点阅读