单例模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!!

(程序如果并发量大的话,内存里就会存在非常多功能上一模一样的对象。存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅创建一个,需要时都去调用)

# 单例模式

class Foo:

    __n = None

    def __init__(self):
self.name = "nick"
self.age = 18
self.job = "pythoner" @staticmethod
def dl():
if Foo.__n:
return Foo.__n
else:
Foo.__n = Foo()
return Foo.__n # 创建对象时不能再直接使用:obj = Foo(),而应该调用特殊的方法:obj = Foo.dl() 。 f1 = Foo.dl()
print(f1)
f2 =Foo.dl()
print(f2)
f3 =Foo.dl()
print(f3) # 运行结果
<__main__.Foo object at 0x0000000001142390>
<__main__.Foo object at 0x0000000001142390>
<__main__.Foo object at 0x0000000001142390>
def singleton(argv):
dic = {} def s(*args, **kwargs): if argv not in dic:
dic[argv] = argv(*args, **kwargs)
return dic[argv]
else:
return dic[argv] return s # 类上加单例装饰器
@singleton
class Foo:
pass @singleton
class Foo2:
pass

最新文章

  1. 悬浮TabBar的实现--此段代码来自网络
  2. css3之景深
  3. HDU-----(1083)Courses(最大匹配)
  4. selenium python (七)层级定位(二次定位)
  5. Tarjan 离线算法LCA
  6. uva 10887
  7. WebView 中重写javascript 常用函数
  8. iOS 身份证最后一位是X,输入17位后自动补全X(转)
  9. CentOS7 定时检测进程占用内存大小,执行重启进程操作(xjl456852原创)
  10. bootstrap-table 表头和内容对不齐解决办法
  11. MongoDB安全及身份认证
  12. 是用Epplus生成Excel 图表
  13. R语言数据集合并、数据增减、不等长合并
  14. 云主机和vps的区别
  15. [VS]VS2013中在一对大括号之间添加垂直虚线
  16. python configparse模块&amp;xml模块
  17. C# 异步示例代码
  18. MySQL关于根据日期查询数据的sql语句
  19. python3 访问百度返回压缩格式
  20. rest规范是什么?

热门文章

  1. Maven3.5.0安装与配置+Eclipse应用
  2. Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》
  3. 阅读&lt;Video Timing Controller&gt;笔记
  4. ArrayBlcokingQueue,LinkedBlockingQueue与Disruptor三种队列对比与分析
  5. DateGridView标题列头添加复选框
  6. Winfrom控件使用
  7. C# 生成时间戳
  8. JAVA中Integer类型变量比较问题
  9. C++11--智能指针shared_ptr,weak_ptr,unique_ptr &lt;memory&gt;
  10. 【模态窗口-Modeldialog】提交请求时禁止在新窗口打开页面的处理方法