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面试题及答案一
Jun 18 面试题
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
Aug 04 面试题
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
Jan 07 面试题
东方通信股份有限公司VC面试题
Aug 27 面试题
介绍一下Transact-SQL中SPACE函数的用法
Sep 01 面试题
以太网Ethernet IEEE802.3
Aug 05 面试题
维德科技C#面试题笔试题
Dec 09 面试题
Shell如何接收变量输入
Sep 24 面试题
品恩科技软件测试面试题
Oct 26 面试题
设计模式的基本要素是什么
Apr 21 面试题
什么是Remote Module
Jun 10 面试题
JDBC操作数据库的基本流程是什么
Oct 28 面试题
什么是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静态变量当缓存的方法
2013/11/13 PHP
php数组去除空值函数分享
2015/02/02 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Python笔记之代理模式
2019/11/20 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
python3.7调试的实例方法
2020/07/21 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
自我鉴定200字
2013/10/28 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
教育英语专业毕业生的求职信
2014/03/13 职场文书
爱情寄语大全
2014/04/09 职场文书
公证书样本
2014/04/10 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
离婚民事起诉状
2015/08/03 职场文书
厉行节约工作总结
2015/08/12 职场文书
篮球拉拉队口号
2015/12/25 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
详解JAVA的控制语句
2021/11/11 Java/Android
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android