您的位置:首页 > 编程语言 > Python开发

python单例模式Singleton

2015-01-08 09:35 281 查看
__author__ = 'sivil'
#coding:utf-8

class Singleton(object):
def __new__(cls, *args, **kwargs):
if not hasattr(cls, '_instance'):
orig = super(Singleton, cls)
cls._instance = orig.__new__(cls, *args, **kwargs)
return cls._instance
class Mclass(Singleton):
a = 2
mc = Mclass()
mc2 = Mclass()
print id(mc), id(mc2)#31568168 31568168

def singleton(cls, *args, **kwargs):
instances = {}
def _singleton():
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return _singleton

@singleton
class Mclass2(object):
a = 2
f = Mclass2()
s = Mclass2()
print id(f), id(s)#31550544 31550544
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: