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

posted @ 2017-06-02 14:38  minseo  阅读(187)  评论(0编辑  收藏  举报