码迷,mamicode.com
首页 > 编程语言 > 详细

python __new__中单例的作用

时间:2018-06-29 17:25:58      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:pre   __new__   object   als   占用   bsp   说明   tran   需要   

#单例的作用就是为了节约系统资源,每每生成一个对象的时候都回去占用内存空间,因此单例就可以结局这个问题
#非单例模式,非单例模式在每次实例化的时候都会去调用内存生,这样调用的次数多了,就可能会造成内存的浪费

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__中单例的作用

标签:pre   __new__   object   als   占用   bsp   说明   tran   需要   

原文地址:http://blog.51cto.com/853056088/2134300

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!