python单例模式有什么用,python的实例

  python单例模式有什么用,python的实例

  单例模式(单例模式)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。

  单例模式

  a、单例模式分为四种:文件,类,基于__new__方法实现单例模式,基于metaclass方式实现。

  b、类实现如下:

  分类符号(对象):

  进口时间

  def__init__(self):

  时间。睡眠(1)

  @classmethod

  定义实例(cls,*args,**kwargs)

  ifnothasattr(Sigletion, _instance):

  信号. instance=Sigletion(*args,**kwargs)

  returnSigletion ._实例

  导入线程

  daftask(arg):

  obj=Sigletion.instance()

  打印(对象)

  (10):

  t=螺纹。线程(target=task,args=[i,])

  启动()相关推荐: 《Python免费入门教程》

  c、基于__new__方法实现单例模式

  进口时间

  导入线程

  classSingleton(object):

  _ instance _ lock=线程。锁定()

  def__init__(self):

  及格

  def__new__(cls,*args,**kwargs):

  ifnothasattr(Singleton, _instance):

  用单身者._instance_lock:

  ifnothasattr(Singleton, _instance):

  单身. instance=对象__new__(cls,*args,**kwargs)

  returnSingleton ._实例

  obj1=Singleton()

  obj2=Singleton()

  打印(obj1,obj2)

  deftask(arg):

  obj=Singleton()

  打印(对象)

  (10):

  t=螺纹。线程(target=task,args=[i,])

  开始()d、基于metaclass方式实现单例模式

  1、对象是类创建,创建对象时候类的__init__方法自动执行,对象()执行类的__呼叫_ _方法。

  2、类是类型创建,创建类时候类型的__init__方法自动执行,类() 执行类型的__呼叫_ _方法(类的__新_ _方法,类的__init__方法)。

  #第0步:执行类型的__init__方法【类是类型的对象】

  classFoo:

  def__init__(self):

  及格

  def__call__(self,*args,**kwargs):

  及格

  #第一步:执行类型的__呼叫_ _方法

  #1.1调用富(中国姓氏)类(是类型的对象)的__新_ _方法,用于创建对象。

  #1.2调用富(中国姓氏)类(是类型的对象)的__init__方法,用于对对象初始化。

  obj=Foo()

  #第2步:执行Foodef _ _ call _ _方法

  obj()

  导入线程

  classSingletonType(类型):

  _ instace _ lock=线程。锁定()

  def__call__(cls,*args,**kwargs):

  ifnothasattr(cls, _instance):

  withSingletonType ._instace_lock:

  ifnothasattr(cls, _instance):

  cls ._instance=super(SingletonType,cls).__call__(*args,**kwargs)

  returncls ._实例

  classFoo(元类=SingletonType):

  def__init__(self,name):

  self.name=name

  obj1=Foo(name )

  obj2=Foo(name )

  打印(obj1,obj2)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: