关于python里面的Singleton模式

3751 发表于 2006-08-23 20:12:46

看了一下,我马上想出以下解决方案:

class Singleton:
    def __init__(self):
        pass
    def __call__(self):
        return self
Singleton = Singleton()

好让我们写下测试代码

def test1():
    s1 = Singleton()
    s2 = Singleton()
    assert s1 is s2

嗯,一切OK!
慢,真的一起OK了吗?让我们增加以下测试代码:

def test2():
    s1 = Singleton()
    s2 = Singleton.__class__()
    assert s1 is s2

faint这回不行了!郁闷!不过这可以做为一种备选方案。但是真的没有更好的办法吗?在啄木鸟上面提到了两种解决方案。不过第一种解决方案我认为实际上是实现的Monostate模式。第2种解决方案才是真正的Singleton!
别人真牛啊!自己的水平还比较菜,还有很大的提高空间。
关键词(Tag): python singleton


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论


  • 你的陈老大
    2006-08-25 10:24:38

    靠~牛逼了阿!高科技了阿!
    单件模式都贴出来了阿 !哈哈

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定