Python装饰器单例

来源:互联网 发布:犀牛软件调整模型尺寸 编辑:程序博客网 时间:2024/06/05 19:11
#!/usr/bin/python#coding: utf-8"""an elegant way to spawn singleton"""def singleton(cls, *args, **kw):    """ singleton decorator """    instances = {}    def _singleton():        if cls not in instances:            instances[cls] = cls(*args, **kw)        return instances[cls]    return _singleton@singletonclass TestClass(object):    a = 1    def __init__(self, x=0):        self.x = xif __name__ == '__main__':    one = TestClass()    two = TestClass()    print one.a    print id(one)    print id(two)    print one is two    one.x = 1    print one.x    print two.x
0 0
原创粉丝点击