Python如何实现单例模式


Posted in 面试题 onJune 03, 2016
Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模式:
1.
class Singleton(type):
def __init__(cls, name, bases, dict):
super(Singleton, cls).__init__(name, bases, dict)
cls.instance = None

def __call__(cls, *args, **kw):
if cls.instance is None:
cls.instance = super(Singleton, cls).__call__(*args, **kw)

return cls.instance

class MyClass(object):
__metaclass__ = Singleton

print MyClass()
print MyClass()
2. 使用decorator来实现单例模式
def singleton(cls):
instances = {}
def getinstance():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return getinstance

@singleton
class MyClass:

Tags in this post...

面试题 相关文章推荐
如何将字串String转换成整数int
Feb 21 面试题
Java里面如何把一个Array数组转换成Collection, List
Jul 26 面试题
类、抽象类、接口的差异
Jun 13 面试题
什么造成了Java里面的异常
Apr 24 面试题
一套Java笔试题
Aug 20 面试题
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
Feb 21 面试题
27个经典Linux面试题及答案,你知道几个?
Mar 11 面试题
传统软件工程与面向对象的软件工程有什么区别
May 31 面试题
AJAX都有哪些有点和缺点
Nov 03 面试题
介绍一下Python中webbrowser的用法
May 07 面试题
MVC的各个部分都有那些技术来实现?如何实现?
Apr 21 面试题
Java程序员综合测试题
Apr 25 面试题
什么是lambda函数
Sep 17 #面试题
介绍一下Python中webbrowser的用法
May 07 #面试题
请写出一段Python代码实现删除一个list里面的重复元素
Dec 29 #面试题
用Python写一个for循环的例子
Jul 19 #面试题
Prototype如何为一个Ajax添加一个参数
Dec 06 #面试题
Prototype如何更新局部页面
Mar 03 #面试题
如何开发安全的AJAX应用
Mar 26 #面试题
You might like
神族 Protoss 剧情介绍
2020/03/14 星际争霸
JS实现php的伪分页
2008/05/25 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
详解php实现页面静态化原理
2017/06/21 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
Prototype Selector对象学习
2009/07/23 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
html+js实现动态显示本地时间
2013/09/21 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
儿科护士自我鉴定
2013/10/14 职场文书
数控技术应届生求职信
2013/11/13 职场文书
企业内控岗位的职责
2014/02/07 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
springcloud整合seata
2022/05/20 Java/Android