Python 单例

时间:2023-03-09 04:34:04
Python    单例
方法1:

 1 class Singleton(object):
def __new__(cls, *args, **kwargs):
if '_inst' not in vars(cls):
cls._inst = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls._inst def __init__(self):
print "init" class SingleSpam(Singleton):
def __init__(self, s):
self.s = s
print "creat"

方法2:

def sinaleton(cls, *arg, **kwargs):
# print cls
isin = {}
def __single():
print isin
if cls not in isin:
isin[cls] = type(cls, *arg, **kwargs)
return isin[cls]
return __single @sinaleton
class myclass(object):
pass