python __new__中单例的作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python __new__中单例的作用相关的知识,希望对你有一定的参考价值。
#单例的作用就是为了节约系统资源,每每生成一个对象的时候都回去占用内存空间,因此单例就可以结局这个问题
#非单例模式,非单例模式在每次实例化的时候都会去调用内存生,这样调用的次数多了,就可能会造成内存的浪费 class A(object): pass a=A() b=A() print(id(a)) print(id(b)) 输出结果 3000151570976 3000151571312 #单例模式 #讲解:在类开始之前会调用类的new方法去生成一个对象,所以我们只需要在类调用钱做处理就好了 class B(object): __instrance = None #定义一个变量 def __new__(cls): if cls.__instrance == None: cls.__instrance = object.__new__(cls) #如果变量是None说明是第一次调用,就生成一个对象, return cls.__instrance else: return cls.__instrance #如果不是就直接返回上次生成好了的对象 c=B() d=B() print(id(c)) print(id(d)) 输出结果 3000151571592 3000151571592 #instrance :实例
以上是关于python __new__中单例的作用的主要内容,如果未能解决你的问题,请参考以下文章
python中单例模式的实现-通过闭包函数和魔术方法__new__实现单例模式