随笔-单例模式

前言:

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

概述:

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方法加上一个条件进行终止


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容