当前位置: 首页 > 后端技术 > Python

python中的单例模式

时间:2023-03-25 20:16:02 Python

单例模式是一种常用的软件设计模式。在其核心结构中只包含一个特殊的类,称为单例类。单例模式可以保证一个类在系统中只有一个实例,并且该实例易于被外界访问,便于控制实例数量,节省系统资源。如果希望系统中只存在某个类的一个对象,单例模式是最好的解决方案。__new__()在__init__()之前被调用以生成实例对象。利用该方法的特点和类的属性,可以实现设计模式的单例模式。单例模式是指创建一个唯一的对象。单例模式设计的类只能实例化1使用__new__方法【Python】纯文本查看__复制代码?123456789classSingleton(`object`):def__new__(`cls,``*args,**kw):`ifnothasattr`(cls,'_instance'`):orig=super`(Singleton,cls`)cls`._instance=orig.__new__(cls,args,``*`kw)returncls`._instance`classMyClass(Singleton):a=12共享属性创建实例时,将所有实例的__dict__指向同一个字典,使它们具有相同的属性和方法。[Python]纯文本视图__复制代码?123456789classBorg(`object`):_state={}def__new__(`cls,``*args,**kw):`ob=super`(Borg,cls).__new__(cls,``*args,**kw)`ob.__dict__=cls`._state`returnobclassMyClass2(Borg):a=13decoratorversion[Python]plaintextview__copycode?0102030405060708091011defsingleton(`cls`):instances={}defgetinstance(`args,``*`kw):如果cls不在实例中:instances[`cls]``=``cls(*args,**kw)`returninstances[`cls`]returngetinstance@singletonclassMyClass:...4import方法作为python模块是天然的单例模式[Python]纯文本view__复制代码?0102030405060708091011#mysingleton.pyclassMy_Singleton(`object`):deffoo(`self`):passmy_singleton=My_Singletonon()#使用frommysingletonimportmy_singletonmy_singleton.foo()参考----https://github.com/taizilongx..._python