欢迎来到天天文库
浏览记录
ID:30505181
大小:15.81 KB
页数:3页
时间:2018-12-30
《python单例模式实例分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解Python单例模式实例分析 本文实例讲述了Python单例模式的使用方法。分享给大家供大家参考。具体如下: 方法一 复制代码代码如下:importthreading classSingleton(object): __instance=None __lock=threading.Lock()#usedtosynchronizecode def__init__(sel
2、f): "disablethe__init__method" @staticmethod defgetInstance(): ifnotSingleton.__instance: Singleton.__lock.acquire() ifnotSingleton.__instance: Singleton.__instance=object.__new__(Singleton) object.__init__(Singleton.__instance) Singleton.__lock.release
3、() returnSingleton.__instance 1.禁用__init__方法,不能直接创建对象。 2.__instance,单例对象私有化。对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 静态方法,通过类名直接调用。 4.__lock,代码锁。 5.继承object类,通过调用o
4、bject的__new__方法创建单例对象,然后调用object的__init__方法完整初始化。 6.双重检查加锁,既可实现线程安全,又使性能不受很大影响。 方法二:使用decorator 复制代码代码如下:#encoding=utf-8 defsingleton(cls): instances={} defgetInstance(): ifclsnotininstances: instances[cls]=cls() returninstances[cls] returngetInstance
5、 @singleton classSingletonClass: pass if__name__=='__main__': s=SingletonClass() s2=SingletonClass() prints对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 prints2 也应该加上
6、线程安全 复制代码代码如下:importthreading classSing(object): def__init__(): "disablethe__init__method" __inst=None#makeitso-calledprivate __lock=threading.Lock()#usedtosynchronizecode @staticmethod defgetInst(): Sing.__lock.acquire() ifnotSing.__inst: Sing.__inst
7、=object.__new__(Sing) object.__init__(Sing.__inst) Sing.__lock.release() returnSing.__inst 希望本文所述对大家的Python程序设计有所帮助。 对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表
此文档下载收益归作者所有