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

面试题 相关文章推荐
雅虎笔试题(字符串操作)
Mar 24 面试题
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
Feb 10 面试题
亿阳信通股份有限公司笔试题(C#)
Mar 04 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
Jul 27 面试题
下列程序在32位linux或unix中的结果是什么
Jan 26 面试题
Linux面试经常问的文件系统操作命令
Oct 04 面试题
如何进行Linux分区优化
Sep 13 面试题
linux比较文件内容的命令是什么
Mar 04 面试题
Java如何获得ResultSet的总行数
Sep 03 面试题
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
May 02 面试题
如何通过jdbc调用存储过程
Apr 19 面试题
介绍一下你对SOA的认识
Apr 24 面试题
什么是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
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
javascript读取RSS数据
2007/01/20 Javascript
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
在Django框架中编写Contact表单的教程
2015/07/17 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
联想中国官方商城:Lenovo China
2017/10/18 全球购物
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
初中家长寄语
2014/04/02 职场文书
服装设计师求职信
2014/06/04 职场文书
承诺书样本
2014/08/30 职场文书
国庆节标语大全
2014/10/08 职场文书
创建文明城市倡议书
2015/04/28 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
九年级化学教学反思
2016/02/22 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android