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面试题
Jul 29 面试题
编写类String的构造函数、析构函数和赋值函数
May 29 面试题
SQL语言面试题
Aug 27 面试题
武汉高蓝德国际.net机试
Jun 24 面试题
.NET初级开发工程师面试题
Apr 18 面试题
XML文档面试题
Aug 05 面试题
标记环网Toke Ring IEEE802.5
May 26 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
Sep 07 面试题
EJB的激活机制
Oct 25 面试题
在浏览器端如何得到服务器端响应的XML数据
Nov 24 面试题
Python的两道面试题
Jun 29 面试题
Promise面试题详解之控制并发
May 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 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
浅析javascript的return语句
2015/12/15 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
原生js实现焦点轮播图效果
2017/01/12 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
Python中的自省(反射)详解
2015/06/02 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
Python telnet登陆功能实现代码
2020/04/16 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
教师自我评价范例
2013/09/24 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
安全技术说明书
2014/05/09 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
神农溪导游词
2015/02/11 职场文书
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android