Python之单例模式
单例模式
内存中只存在一个实例
vim day.8-15.py
#!/usr/bin/env python #coding:utf-8 class SqlHelper: pass obj1 = SqlHelper() print id(obj1) obj2 = SqlHelper() print id(obj2) #两次调用id不一样 class SqlHelper2: __static_instance = None @classmethod def instance(cls): if cls.__static_instance: return cls.__static_instance else: cls.__static_instance = SqlHelper2() return cls.__static_instance obj3 = SqlHelper2.instance() print id(obj3) obj4 = SqlHelper2.instance() print id(obj4) #使用单实例,调用方法不同id一样节约内存空间
多次调用一个实例会在内存生成不同id,改变调用方法可以保证内存里面只有一个实例,节省内存空间