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

面试题 相关文章推荐
Ibatis如何调用存储过程
May 15 面试题
大整数数相乘的问题
Jul 22 面试题
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
Aug 15 面试题
C语言中break与continue的区别
Jul 12 面试题
2019史上最全Database工程师题库
Dec 06 面试题
什么是View State?
Jan 27 面试题
什么是静态路由?什么是动态路由?各自的特点是什么?
Sep 16 面试题
params有什么用
Mar 01 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
Feb 10 面试题
EJB面试题
Jul 28 面试题
请问软件开发中的设计模式你会使用哪些
May 13 面试题
UNIX文件系统分类
Nov 11 面试题
什么是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
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
python概率计算器实例分析
2015/03/25 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
10个Python小技巧你值得拥有
2018/09/29 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
项目副经理岗位职责
2013/12/30 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
初中生活随笔
2015/08/15 职场文书
初一数学教学反思
2016/02/17 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS