单例模式
内存中只存在一个实例
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,改变调用方法可以保证内存里面只有一个实例,节省内存空间