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

面试题 相关文章推荐
C#面试题问题集
Apr 02 面试题
软件测试笔试题
Oct 25 面试题
GWebs公司笔试题
May 04 面试题
中间件分为哪几类
Mar 14 面试题
中间件分为哪几类
Sep 18 面试题
Prototype是怎么扩展DOM的
Oct 01 面试题
如何开发安全的AJAX应用
Mar 26 面试题
Prototype如何为一个Ajax添加一个参数
Dec 06 面试题
Java面试题汇总
Dec 06 面试题
25道Java面试题集合
May 21 面试题
Delphi笔试题
Nov 14 面试题
Promise面试题详解之控制并发
May 14 面试题
什么是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
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
php获取根域名方法汇总
2014/10/28 PHP
PHP 正则表达式小结
2015/02/12 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
javascript 跳转代码集合
2009/12/03 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
python 网络爬虫初级实现代码
2016/02/27 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
Why do we need Unit test
2013/01/03 面试题
篮球比赛口号
2014/06/10 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
违纪检讨书范文
2015/01/27 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
react antd实现动态增减表单
2021/06/03 Javascript
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL