Python Singleton

Python Singleton

首先声明一个singleton装饰器

#!/usr/bin/env python
# -*- coding: utf-8 -*-


def singleton(cls, *args, **kw):
    instances = {}

    def _singleton():
        if cls not in instances:
            instances[cls] = cls(*args, **kw)
        return instances[cls]

    return _singleton

使用@singleton注解在须要单例的类上标注

#!/usr/bin/env python
# -*- coding: utf-8 -*-


@singleton
class Config:

    def __init__(self):
        pass

    def test(self):
        pass

測试

#!/usr/bin/env python
# -*- coding: utf-8 -*-


config = Config()
config.test()
...
posted @ 2017-08-20 08:22  gccbuaa  阅读(307)  评论(0编辑  收藏  举报