单例模式:就是永远用一个对象的实例

初级版

#初级版
class Foo(object):
instance=None def __init__(self):
pass @classmethod # 类方法 类方法只能访问类变量,不能访问实例变量
def get_instance(self): if Foo.instance:
return Foo.instance else: Foo.instance = Foo()
return Foo.instance obj1=Foo.get_instance()
obj2=Foo.get_instance() print(id(obj1),id(obj2))

高级版

#高级版

class Foo(object):

    instance =None

    def __init__(self):
pass def __new__(cls, *args, **kwargs): if Foo.instance: return Foo.instance
else: Foo.instance = object.__new__(cls,*args,**kwargs) return Foo.instance obj1=Foo()
obj2=Foo() print(id(obj1),id(obj2))

最新文章

  1. ListView控件--2016年12月9日
  2. 近期编程问题——read:resource temporarily unavailable
  3. Linux系统安装LAMP
  4. SQLServer根据不同前缀生成多套流水号
  5. JavaBean与EJB的区别与应用
  6. 基于bootstrap的datatable控件
  7. cairo graphics.org
  8. 工作日志(DJ)
  9. linux的用户,群组和其他用户
  10. Python基础——字符串
  11. Python实现常用排序算法
  12. JavaScript遍历集合(for...of/for...in/forEach)
  13. May 26. 2018 Week 21st Saturday
  14. react-navigation 中的多tabs嵌套时内部tabs无法正常切换问题
  15. AI大道理头尾标识
  16. HDU-1160.FatMouse'sSpeed.(LIS变形 + 路径打印)
  17. CF666E Forensic Examination 广义SAM、线段树合并、倍增、扫描线
  18. spring controller 获取context
  19. linux(redhat)环境下,如何解压rar文件?
  20. 假期C语言学习笔记4

热门文章

  1. Java 中的系统时间
  2. angular学习第1步
  3. RESTful协议
  4. anaconda的使用总结
  5. php获取id
  6. 『Python』为什么调用函数会令引用计数+2
  7. 安装在类虚拟机crossover中的容器怎么进行的备份和恢复
  8. BootStrap 学习笔记一
  9. 从零开始学习Java多线程(一)
  10. Angular7.1.4+Typescript3.1框架学习(二)