单例模式是类 只实例化出一个该类的实例。
1.把实例变量绑定到类。
class A(object):
def init(cls):
if not hasattr(cls, "_instance"):
cls._instance=B()
这样能保证B()只执行一次,但A()仍然会执行多次。如果把定义init方法变成重写__new__方法,则可以保证A()也只执行一次。因为 new才是去创造对象,init不是创造对象,是初始化对象的值,即,虽然只有一个实例,但是可以多次初始化这个实例包含的成员的值。
参考:
http://ghostfromheaven.iteye.com/blog/1562618