Python的单例设计模式

前人种树,后人乘凉,这都是老前辈们总结出来的

所谓单例设计模式,简单来说就是仅允许该类实例化一次,可以理解为应用程序仅允许单开,双开是不允许的。即一个类不允许第二次实例化创建新对象(占用新的内存),设计模式其实就是一种解决问题的方法!

解决方式:
  • 在类定义时添加标记,一个是实例化地址标记,初始为None
  • 再添加一个初始化标记,若已经实例化过,则不再执行初始化动作
代码示意:
class Demo(object):
    # 已实例化标记
    instance = None
    # 初始化标记
    init_flag = False
    
    def __new__(cls, *args, **kwargs):
        # 若没有实例化过
        if cls.instance is None:
            cls.instance = super().__new__(cls)
        # 返回实例化对象指针
        return cls.instance


    def __init__(self):
        # 若已存在实例,不再初始化
        if self.init_flag:
            print("不再初始化")
            return
        # 初始化提示及标记
        print("初始化完成")
        self.init_flag = True


msc = Demo()
print(msc)
msc2 = Demo()
print(msc2)
msc3 = Demo()
print(msc3)

中间的各种print是作为验证使用的,下面是验证截图:
在这里插入图片描述

发布了44 篇原创文章 · 获赞 68 · 访问量 5107

猜你喜欢

转载自blog.csdn.net/qq_25404477/article/details/104177098