标签:数据库连接 存储 初始化 return assm logs 类方法 class 使用
实现:
# 单例实现:
class Foo: __v = None @classmethod #类方法 def get_instance(cls): if cls.__v: return cls.__v else: cls.__v = Foo() return cls.__v # obj1 = Foo.get_instance() # print(obj1) # obj2 = Foo.get_instance() # print(obj2) # obj3 = Foo.get_instance() # print(obj3)
适用场景:
只创建一个实例,节省空间。
数据库连接池
原理:在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。
# tornado中的IOloop class IOLoop(): @staticmethod def instance(): if not hasattr(IOLoop, "_instance"): with IOLoop._instance_lock: if not hasattr(IOLoop, "_instance"): IOLoop._instance = IOLoop() return IOLoop._instance
标签:数据库连接 存储 初始化 return assm logs 类方法 class 使用
原文地址:http://www.cnblogs.com/yangxiaoling/p/6843096.html