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

面试题 相关文章推荐
如何打印出当前源文件的文件名以及源文件的当前行号
Apr 05 面试题
在什么时候需要使用"常引用"
Dec 31 面试题
.NET remoting中对象激活的两种方式
Jun 08 面试题
关于VPN
Jun 10 面试题
TCP协议通讯的过程和步骤是什么
Oct 18 面试题
C#怎么让一个窗口居中显示?
Oct 20 面试题
linux面试题参考答案(3)
Sep 13 面试题
Linux如何修改文件和文件夹的权限
Sep 05 面试题
简述安装Slackware Linux系统的过程
May 08 面试题
AssertionError 跟一下那个类是 “is – a”的关系
Feb 21 面试题
String、StringBuffer、StringBuilder有区别
Sep 18 面试题
Java模拟试题
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
php简单封装了一些常用JS操作
2007/02/25 PHP
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
javascript中length属性的探索
2011/07/31 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
javascript数组去重小结
2016/03/07 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
详解小白之KMP算法及python实现
2019/04/04 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
员工家属慰问信
2015/03/24 职场文书
2016猴年春节问候语
2015/11/11 职场文书
小学运动会开幕词
2016/03/04 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL