python的单例模式

单例模式
介绍

​ 单例模式核心主要是保证一个类只有一个实例,并且提供一个全局访问点,为什么要这么做呢?在具体代码运行前还是要说明一下我们的计算机构成和代码运行机制以便于我们更好的理解单例模式的作用。

在这里插入图片描述

冯诺依曼体系[^1]

​ python的变量无需声明,无需指定类型,我们程序员也无需掌握内存管理机制,对于python的处理我们可以简单嵌套冯诺依曼体系。

​ 下面来说明一下处理过程,以下面例子来具体说明

a="ABC"
b=a
a="XYZ"
"""
step1:开辟内存空间,存储数据10类型属于int,变量a指向了"ABC"
step2:创建变量b,指向a指向的int类型的10
step3:创建int类型的"XYZ",并且变量a指向了"XYZ"
"""

在这里插入图片描述

小结:总体来说也就是我们单例模式就是为了减少内存的开支创建一次对象即可

实例
"""
1. 使用__new__方法进行类的构造,构造完成后使用类变量进行标识
2. 使用__init__初始化前防止反复调用使用类变量进行标识
"""
class My_Single():
    _obj=None #类属性
    _init_Flag =True
    def __new__(cls, *args, **kwargs):
        if cls._obj ==None:
            cls._obj =object.__new__(cls)

        return cls._obj
    def __init__(self,name):
        if My_Single._init_Flag:
            print ("______init______")
            self.name = name
            My_Single._init_Flag = False
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值