小白的Python之设计模式

1.Python单例设计模式
目的:让类创建的对象,在系统中只有唯一的一个实例

每次创建实例对象,内存地址都是相同的

'''

单例实现步骤

内存分配

1. 重写__new__方法 拦截分配内存控件方法

2. 用一个为None的类属性判断是否分配过内存空间,

如果为None说明没有分配空间,那用instance类属性保存父类的分配内存空间的地址

如果有就直接返回创建好的内存控件

初始化

1.重写__init__方法,拦截初始化操作

2.用一个默认为Flase的init_flag类属性判断是否执行过初始化操作

如果有执行直接返回

如果没有,执行初始化操作后设置init_flag标记为True

'''

class InstanceClass(object):

    instance = None

    init_flag = False

    def __new__(cls, *args, **kwargs):

        if  cls.instanceis None:

            cls.instance= super().__new__(cls)

        return  cls.instance

    def __init__(self):

        # 1.判断是否初始化

        if  InstanceClass.init_flag:

            return

        # 2.初始化代码

        print("初始化")

        # 3.初始化完毕后设置初始化标记为True

        InstanceClass.init_flag= True

objA = InstanceClass()

objB = InstanceClass()

print(objA,objB)

未完待续......

你可能感兴趣的:(小白的Python之设计模式)