基本概念
单例模式:属于创建类型的一种常用的软件设计模式。所谓单例,就是整个程序有且只有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建。
Python实现单例模式
使用new方法
class singleton(object): def __new__(cls,*args,**kw): if not hasattr(cls,'_instance'): orig = super(singleton,cls) cls._instance = orig.__new__(cls,*args,**kw) return cls._instance class MyClass(singleton): a = 1
装饰器
def singleton(cls,*args,**kw): instances={} def getinstance(): if cls not in instances: instances[cls] = cls(*args,**kw) return instances[cls] return getinstance @singleton class MyClass: pass
import方法
作为Python的模块是天然的单例模式
#mysingleton.py class My_singleton(object): def foo(self): pass my_singleton = My_singleton() #to use from mysingleton import my_singleton mysingleton.foo()