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

面试题 相关文章推荐
PHP解析URL是哪个函数?怎么用?
May 09 面试题
请说出你所知道的线程同步的方法
Apr 19 面试题
Weblogc domain问题
Jan 27 面试题
xml有哪些解析技术?区别是什么
Apr 26 面试题
Ref与out有什么不同
Nov 24 面试题
NET程序员上机面试题
May 23 面试题
Hashtable 添加内容的方式有哪几种,有什么区别?
Apr 08 面试题
说出你对remoting 和webservice的理解和应用
Jun 08 面试题
extern是什么意思
Mar 10 面试题
Linux文件操作命令都有哪些
Feb 27 面试题
港湾网络笔试题
Apr 19 面试题
正隆泰信息技术有限公司上机题
Jun 14 面试题
什么是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官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
从零学Python之引用和类属性的初步理解
2014/05/15 Python
pandas数据分组和聚合操作方法
2018/04/11 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
python set集合使用方法解析
2019/11/05 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
最新英语专业学生求职信范文
2013/09/21 职场文书
自我鉴定书
2014/03/24 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
听证通知书
2015/04/24 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
python获取字符串中的email
2022/03/31 Python