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.控制实例产生的数量,达到节约资源的目的,提高系统运行的效率,提高系统性能。
进击的qing
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律