单例模式元类
元类实现单例模式
1 #coding=utf8 2 class Singleton(type): 3 _instances = {} 4 5 def __call__(cls, *args, **kwargs): 6 if cls not in cls._instances: 7 cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) 8 return cls._instances[cls] 9 10 11 # Python2 12 class MyClass(object): 13 pass 14 __metaclass__ = Singleton 15 16 # Python3 17 # class MyClass(metaclass=Singleton): 18 # pass 19 20 m1=MyClass() 21 22 m2=MyClass() 23 24 print id(m1),id(m2)
反对极端面向过程编程思维方式,喜欢面向对象和设计模式的解读,喜欢对比极端面向过程编程和oop编程消耗代码代码行数的区别和原因。致力于使用oop和36种设计模式写出最高可复用的框架级代码和使用最少的代码行数完成任务,致力于使用oop和设计模式来使部分代码减少90%行,使绝大部分py文件最低减少50%-80%行的写法。