.net

.net

 

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

 

posted on 2015-02-28 09:21  严杰  阅读(147)  评论(0编辑  收藏  举报

导航