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...

面试题 相关文章推荐
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
Nov 18 面试题
c++工程师面试问题
Aug 04 面试题
Android interview questions
Dec 25 面试题
如何用SQL语句进行模糊查找
Sep 25 面试题
介绍一下内联、左联、右联
Dec 31 面试题
为什么UNION ALL比UNION快
Mar 17 面试题
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
May 23 面试题
远东集团网络工程师面试题
Oct 20 面试题
在c#中using和new这两个关键字有什么意义
May 19 面试题
Linux Interview Questions For software testers
May 17 面试题
如何拷贝一整个Java对象,包括它的状态
Dec 27 面试题
建龙钢铁面试总结
Apr 15 面试题
什么是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
一个目录遍历函数
2006/10/09 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
基于php-fpm的配置详解
2013/06/03 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
JS读取XML文件示例代码
2013/11/15 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
javascript对HTML字符转义与反转义
2018/12/13 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
Python装饰器语法糖
2019/01/02 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
Python实现FM算法解析
2019/06/18 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
捐书寄语赠言
2014/01/18 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
学习三严三实心得体会
2014/10/13 职场文书
护理见习报告范文
2014/11/03 职场文书
听证通知书
2015/04/24 职场文书
文明旅游倡议书
2015/04/28 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书