单例模式
定义:所谓的单例模式是在软件设计模式中的一种,以确保一个类只有一个实例的存在。在某个系统中,当一个类只有一个实例时可以比一个类有多个实例要节省很多资源,所以要用单例模式。
实现单例模式的方法:
1、模块
2、new
3、装饰器
4、元类
一、模块
class Singletion(object):
def foo(self):
pass
singletion=Singletion()
在别的文件中引用此python的模块时,此对象即单例模式的对象
from a import singleton
二、使用装饰器
def Singleton(cls):
_instance = {}
def _singleton(*args, **kargs):
if cls not in _instance:
_instance[cls] = cls(*args, **kargs)
return _instance[cls]
return _singleton
@Singleton
class A(object):
a = 1
def __init__(self, x=0):
self.x = x
a1 = A(2)
a2 = A(3)