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的面试题
May 06 面试题
PHP面试题大全
Oct 16 面试题
What is the purpose of Void class? Void类的作用是什么?
Oct 31 面试题
一个C/C++编程面试题
Nov 10 面试题
Android面试题及答案
Sep 04 面试题
维德科技C#面试题笔试题
Dec 09 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
May 03 面试题
软件测试英文面试题
Oct 14 面试题
软件测试题目
Feb 27 面试题
面向对象设计的原则是什么
Feb 13 面试题
汇科协同Java笔试题
Mar 31 面试题
Ruby如何定义一个类
Oct 08 面试题
什么是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之对抗Web扫描器的脚本技巧
2008/10/01 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
python提取字典key列表的方法
2015/07/11 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
kali中python版本的切换方法
2019/07/11 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
Python分类测试代码实例汇总
2020/07/23 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
python数据抓取3种方法总结
2021/02/07 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
大学生就业求职信
2014/06/12 职场文书
部队个人年终总结
2015/03/02 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫
Java完整实现记事本代码
2022/06/16 Java/Android