于凤明

个人站

一个刚刚接触代码的小白,以后的路还很长


python中的单例模式

单例模式

单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时(如软件配置类,无论在软件的什么地方实例化,永远都是那一个对象),单例模式就能派上用场。比如,Python 日志模块中的日志对象,或者异步通讯框架 twisted 里面的反应堆(reactor),都是典型的单例模式——尽管它们不一定是下面这种方法实现的。

python可以使用装饰器的方法使用单例模式:

def Singleton(cls):
    _instance = {}

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

    return _singleton

@Singleton
class Config(object):
    pass

cfg1 = Config()
cfg2 = Config()

print(cfg1 is cfg2)

结果如下

D:\Python37\python.exe D:/PycharmProjects/QT_pro/re_demo.py
True

Process finished with exit code 0

Copyright description

    ➩  如需转载请注明出处:凤明的博客 » https://victorfengming.github.io/#blog

    ➩  小编CSDN链接地址: 秋叶夏风的博客 » https://blog.csdn.net/qq_40223983

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦