通过共享属性达到单例模式
# coding=utf8 class Borg(object): _state = {} def __new__(cls, *args, **kw): ob = super(Borg, cls).__new__(cls, *args, **kw) ob.__dict__ = cls._state return ob def __init__(self,x): self.x = x b1 = Borg(1) b2 = Borg(2) print b1.x print b2.x print id(b1) print id(b2)
结果是
可以看到共享属性方式的单例模式,与前两篇的不一样,实例化多少次就有多少个对象产生,但每个对象的状态,也就是所有实例的属性都是保持一致的。