单例模式共享属性
通过共享属性达到单例模式
# 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)
结果是
可以看到共享属性方式的单例模式,与前两篇的不一样,实例化多少次就有多少个对象产生,但每个对象的状态,也就是所有实例的属性都是保持一致的。
反对极端面向过程编程思维方式,喜欢面向对象和设计模式的解读,喜欢对比极端面向过程编程和oop编程消耗代码代码行数的区别和原因。致力于使用oop和36种设计模式写出最高可复用的框架级代码和使用最少的代码行数完成任务,致力于使用oop和设计模式来使部分代码减少90%行,使绝大部分py文件最低减少50%-80%行的写法。