Python单例模式的简单实现

  单例模式是一种常用的软件设计模式,该模式的主要目的是确保某一个类在内存中只能有一个实例对象,通过单例模式的方法创建的类在当前进程中只有一个实例对象,单例模式
可以保证一个类仅有一个实例,并提供一个访问它
的全局访问点,适用性于当类只能有一个实例而且客户可以从一个众所周知的访问点访问它,例如访问数据库、MQ等。
class Demo:
    # 当Python实例化一个对象时,首先调用__new__(),方法构造一个类的实例,并为其分配对应类型的内存空间,该实例的内存地址就是它的唯一标识符。然后再调用__init__(),方法对实例进行初始化
,通常是对该实例的属性进行初始化。 def __new__(cls,
*args, **kwargs): # hasattr() 函数用于判断对象是否包含对应的属性。 if not hasattr(cls, '_instance'): cls._instance = object.__new__(cls) return cls._instance # 当我们创建好一个实例对象之后,会自动调用这个方法,来初始化这个对象 def __int__(self): pass c1 = Demo() c2 = Demo() # id()函数用于获取对象的内存地址。 print(id(c1)) print(id(c2))
先屏蔽单例的实现,实例化类,可以看到两个类指向的地址是不一样的:

而使用单例模式,实例化类,可以看到两个类指向的地址是同一个,这也是我们想要的结果:

优点:
1.控制资源的使用,通过线程同步来控制资源的并发访问;
2.控制实例产生的数量,达到节约资源的目的,提高系统运行的效率,提高系统性能。

posted on 2022-09-04 13:21  进击的qing  阅读(66)  评论(0编辑  收藏  举报