2011年7月27日星期三

Singleton implementation in Python

def Singleton(cls):
    
    def delegate(*args, **keyargs):
        if hasattr(cls, 'instance') == False:
            cls.instance = cls(*args, **keyargs)
        return cls.instance    
    
    return delegate
    
@Singleton
class test:
    def __init__(self):
        self.attr = 'aaa'
        print('init test')

if __name__ == '__main__':
    a = test()
    b = test()
    print(a,b,a==b)
    print(a.attr, b.attr)
    a.attr = 'bbb'
    print(a.attr, b.attr)    
    b.attr = 'ccc'
    print(a.attr, b.attr)

没有评论:

发表评论