单例模式 python,python中单例模式是什么
本文分享了五种用Python创建singleton模式的常用方法,供大家参考。具体情况如下
所谓singleton,就是一个类的实例从头到尾只能创建一次。
方法1:
如果希望一个类从头到尾最多有一个实例,那么使用__new__方法会非常简单。Python中的类通过__new__创建实例:
类单例(对象):
def __new__(cls,*args,**kwargs):
如果不是hasattr(cls, _inst ):
cls。_inst=super(Singleton,cls)。__new__(cls,*args,**kwargs)
返回cls。_inst
if __name__==__main__ :
A类(单例):
def __init__(self,s):
self.s=s
a=A(苹果)
b=A(“香蕉”)
打印id(a),a.s
打印id(b),b.s
结果:
29922256香蕉
29922256香蕉
通过__new__方法,类的实例在创建时被绑定到类property _inst。如果cls。_inst为None,这意味着该类尚未实例化。实例化该实例并将其绑定到cls。_inst,然后每次都返回第一次实例化创建的实例。从Singleton派生子类时,注意不要重载__new__。
方法二:
有时我们不关心生成的实例是否有相同的id,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。