Python 实现单例模式

Python 实现单例模式

    

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 # 使用Python实现单例模式   # 方法一: 使用__new__方法 class  SingleTon( object ):      def  __new__( cls * args,  * * kwargs):          if  not  hasattr ( cls '_instance' ):              cls ._instance  =  object .__new__( cls * args,  * * kwargs)          return  cls ._instance     class  TestClass(SingleTon):      =  1     # 方法二: 使用装饰器(decorator) def  SingleTon1( cls * args,  * * kwargs):      instances  =  {}      def  _singleTon():          if  cls  not  in  instances:              instances[ cls =  cls ( * args,  * * kwargs)          return   instances[ cls ]      return  _singleTon     @SingleTon1 class  TestClass1( object ):      =  1       # 共享属性  属性是共享的,但是并非单例模式 class  SingleTon3( object ):      _state  =  {}      def  __new__( cls * args,  * * kwargs):          obj  =  object .__new__( cls * args,  * * kwargs)          obj.__dict__  =  cls ._state          return  obj     class  TestClass3(SingleTon3):      =  1   test1  =  TestClass3() test2  =  TestClass3() test1.a  =  2 print (test1.a) print (test2.a) print (test1) print (test2)

本文转自 许大树 51CTO博客,原文链接:http://blog.51cto.com/abelxu/1967293,如需转载请自行联系原作者

    原文作者:python设计模式
    原文地址: https://yq.aliyun.com/articles/544678
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞