Python 单例

方法1:

1
class Singleton(object): 2 def __new__(cls, *args, **kwargs): 3 if '_inst' not in vars(cls): 4 cls._inst = super(Singleton, cls).__new__(cls, *args, **kwargs) 5 return cls._inst 6 7 def __init__(self): 8 print "init" 9 10 11 class SingleSpam(Singleton): 12 def __init__(self, s): 13 self.s = s 14 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
原文地址:https://www.cnblogs.com/zj1111184556/p/4304688.html