基本概念
单例模式:属于创建类型的一种常用的软件设计模式。所谓单例,就是整个程序有且只有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建。
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:
passimport方法
作为Python的模块是天然的单例模式
#mysingleton.py
class My_singleton(object):
def foo(self):
pass
my_singleton = My_singleton()
#to use
from mysingleton import my_singleton
mysingleton.foo()
京公网安备 11010502036488号