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

面试题 相关文章推荐
某个公司的Java笔面试题
Mar 11 面试题
C语言中break与continue的区别
Jul 12 面试题
SQL Server 2000数据库的文件有哪些,分别进行描述
Mar 30 面试题
杭州龙健科技笔试题.net部分笔试题
Jan 24 面试题
Javascript如何发送一个Ajax请求
Jan 26 面试题
什么是索引指示器
Aug 20 面试题
shell程序中如何注释
Feb 17 面试题
瀑布模型都有哪些优缺点
Jun 23 面试题
提高EJB性能都有哪些技巧
Mar 25 面试题
Prototype如何更新局部页面
Mar 03 面试题
JAVA高级程序员面试题
Sep 06 面试题
shell程序如何生命变量?shell变量是弱变量吗?
Nov 10 面试题
什么是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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
php 禁止页面缓存输出
2009/01/07 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
javascript常用方法汇总
2014/12/02 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
jQuery实现朋友圈查看图片
2020/09/11 jQuery
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
Python中的ConfigParser模块使用详解
2015/05/04 Python
详解Django通用视图中的函数包装
2015/07/21 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
django 简单实现登录验证给你
2019/11/06 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
公司员工的自我评价范例
2013/11/01 职场文书
售后主管岗位职责
2013/12/08 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
我的祖国演讲稿
2014/05/04 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL