随笔-单例模式

前言:

有一阵子看了别人很多写单例模式的理解,于是也把自己的理解记录一下,他日成为大牛也可以看回曾经的足迹

概述:

1,__new__() 方法是特殊方法,作用是在类初始化实例之前,给实例划出一个新的内存空间;

2,__init__()方式也是特殊方法,作用是在获得__new__()方法划给它地盘以后,在这个地盘给类进行实例对象创建

3、实现单例,就要重写__new__() 方法

4、之后还要对__inti__()进行重写

5、写单例有很多种方法,这里就列举自己惯用的


作者:Simon0903

链接:https://www.jianshu.com/u/2b4bc3b5e6fc

來源:

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

实现单例模式代码如下:

class Alone():

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

                 if not hasattr(cls, "example"):    

                        cls.example = super().__new__(cls)    

                return cls.example    



虽然是单例,但是在调用的时候,依旧在 __inti__() 的时候,会不断进行初始化,如下:


那就为init方法加上一个条件进行终止


你可能感兴趣的:(随笔-单例模式)